0

noeval コントローラーから組み込みの Compoundjs ヘルパー メソッドにアクセスするにはどうすればよいですか?

評価されたコントローラーから、ヘルパー関数は自動的にロードされるように見え、次のようなことを行うだけでアクセスできます。

before('protectFromForgery', function () {
    protectFromForgery('some_secret_key');
});

しかし、評価されていないコントローラーからそれらにアクセスする最善の方法が何であるかはわかりません。

それらは /compound/node_modules_kontroller/lib/helpers.js にあるようです

4

1 に答える 1

0

理解した。すべての組み込みヘルパー メソッドは、コントローラー コンテキスト オブジェクトにアタッチされているだけです。(以下の例の変数「c」)

したがって、次のようにします。

//Example of noeval controller: app/controllers/car.js:

module.exports = CarController;

// load parent controller
var Essentials = require('./essentials');

function CarController(init) {
    // call parent constructor
    Essentials.call(this, init);

    init.before(function protectFromForgery(c) {
        c.protectFromForgery("some_secret_key");
    }, {only: 'accelerate'});

}

// setup inheritance
require('util').inherits(CarController, Essentials);

CarController.prototype.accelerate = function(c) {
    c.send(++this.speed);
};

CarController.prototype.brake = function(c) {
    c.send(++this.speed);
};
于 2013-07-29T21:04:38.487 に答える