【发布时间】:2016-07-11 02:41:03
【问题描述】:
我正在尝试将测试应用从 Ember 1.0 迁移到 Ember 2.0
我写了一个索引模板,带有一个动作事件'alert'
<table id="t01">
<tr>
<th>Company Name</th>
</tr>
{{#each model as |item|}}
<tr>
<td {{action "alert" "alert form company name" }}>{{item.name}}</td>
</tr>
{{/each}}
</table>
我写了一个 application.js 控制器来初始化属性
import Ember from 'ember';
export default Ember.Controller.extend({
className:"hide",
message: ""
});
我还有一个 index.js 控制器来在索引控制器级别执行一些逻辑
import Ember from 'ember';
export default Ember.Controller.extend({
actions:{
alert: function(){
console.log("do some controller level processing");
return true;
}
}
});
最后我定义了一个带有“警报”事件处理程序的 routes/application.js,用于更新应用程序控制器属性(类名、消息)
import Ember from 'ember';
export default Ember.Route.extend({
actions:{
alert: function(message){
var applicationController = this.controllerFor("application");
applicationController.set("className","alert");
applicationController.set("message",message);
Ember.run.later(function(){
applicationController.set("className","hide");
},2000);
}
}
});
还有一个路由/index.js 来提供模型数据
但它在 Ember.js 2.0(运行 2.4.2)中无法正常工作 并且控制台没有错误信息,我只得到索引控制器控制台日志输出
似乎触发了 routes/application.js 中的警报操作,正确接收消息,但未设置属性... 我可以获得应用程序控制器吗?与
var applicationController = this.controllerFor("application");
感谢反馈
【问题讨论】: