Ember 2.0真的让我很难理解新功能。我想从动作函数中调用控制器中的方法,但似乎没有找到方法。已经浪费了一些时间
我已经读过这个:calling method from action of controller in emberjs但它只适用于Ember 1.x,因为在Ember 2.0中没有ArrayController,我不能使用this.send()。
基本上我需要的是:
App.SomeController = Ember.Controller.extend({
methodFunction: function(data) {
console.log("YEY", data);
}
actions: {
sessionAction: function(data) {
this.methodFunction(data);
}
}
});
问题是this.methodFunction
不可用
答案 0 :(得分:2)
您提供的代码有错误:
SyntaxError:controllerName.js:unknown:意外的令牌(7:3)(...)
,
声明后你遗漏了methodFunction
。修正:
App.SomeController = Ember.Controller.extend({
methodFunction: function(data) {
console.log("YEY", data);
},
actions: {
sessionAction: function(data) {
this.methodFunction(data);
}
}
});
对于模板:
<button {{action 'sessionAction' 'Example data'}}>Send session action</button>
它正确记录:
YEY示例数据
顺便说一下,您还可以利用ES2015语法:
export default Ember.Controller.extend({
methodFunction(data) {
console.log("YEY", data);
},
actions: {
sessionAction(data) {
this.methodFunction(data);
}
}
});