如何从位于Route中的setupController调用动作把手内的函数。 (另外,我如何调用控制器内的函数而不是路径本身。)
我希望我的页面分析URL参数并根据这些参数填写一些变量。
App.CresRoute = Ember.Route.extend({
setupController: function(){
this.send('testFunction', "Print me");
},
actions: {
testFunction: function(string){
console.log(string);
},
}
});
这会返回一个错误:"没有处理函数' testFunction'。"
显然我的方法比较复杂,有很多参数,这只是为了证明这个问题。
答案 0 :(得分:0)
我已经对此进行了编辑以试图澄清您的问题,但我不确定您的意思是"在setupController"中调用动作把手内的函数。
在您已包含的示例代码中,testFunction
要响应,它需要位于路径树的更高位置。行动上升。如果您尝试在控制器上设置变量,那么您可以在setupController
挂钩中执行此操作,但您不需要采取措施来执行此操作;只需在动作块之外定义testFunction
,并将其称为路线上的常规方法:
App.CresRoute = Ember.Route.extend({
setupController: function(){
this.testFunction("Print me");
},
testFunction: function(string){
console.log(string);
}
});
我不知道Handlebars与这个问题有什么关系,所以我想知道我是否已经理解了你正在尝试做什么?
答案 1 :(得分:0)
这应该对您有用。
App.CresRoute = Ember.Route.extend({
setupController: function(){
this.actions.testFunction('Print me');
},
actions: {
testFunction(string){
console.log(string);
},
}
});