Jea*_*eri 0 events router view custom-events ember.js
我想谈谈一个原始的事件(点击)到语义事件,如"deleteTodo"这说明在这里,但不知道如何实现:(
我有以下代码:
App.TodoView = Em.View.extend({
click: function(e) {
this.trigger("deleteTodo");
}
});
App.Router.map(function(match) {
match('/').to('index');
});
App.IndexRoute = Ember.Route.extend({
deleteTodo: function(e) {
// this code is never executed :(
}
}) ;
Run Code Online (Sandbox Code Playgroud)
执行'click'后,我看到调用了TodoView单击函数,但没有调用IndexRoute中的deleteTodo函数.有什么建议可能会出错吗?
干杯
您可以使用this.get("controller").send("deleteTodo").这将向控制器发送一条消息,如果控制器没有处理deleteTodo,它将冒泡到路由器并在那里处理.
click: function(e) {
this.get('controller').send("deleteTodo");
}
Run Code Online (Sandbox Code Playgroud)
在您的路由器中,您还需要定义事件:
events: {
doStuff: function(e) {
alert("Do stuff") ;
}
}
Run Code Online (Sandbox Code Playgroud)
我通常会在控制器中记录删除.似乎把它放在路由器事件中并不理想.