2013-07-29 30 views
0

如何從noeval控制器訪問內置的Compoundjs輔助方法?如何從noeval控制器訪問內置的Compoundjs輔助方法?

從eval'd控制器的輔助功能似乎得到自動加載,他們只是通過做這樣的訪問:

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

,但不知道最好的辦法是從非訪問他們什麼 - 被控制的控制器。

他們似乎位於/compound/node_modules_kontroller/lib/helpers.js

回答

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); 
}; 
相關問題