Possible Duplicate:
emberjs: how to trigger a custom event in a View
我创建了一个 jsfiddle 来演示这个问题。当您在 View 中单击(在文本上)时,您将在控制台中看到 View 接收到单击。但是当我创建自定义事件并触发它时,路由器中没有收到它:
App.IndexView = Em.View.extend({
click: function(e) {
console.log("CLICK");
this.get("controller").send("doStuff");
}
});
App.IndexRoute = Em.Route.extend({
....
doStuff: function(e) {
alert("Do stuff") ;
}
});
这也是一个完整的工作示例 http://jsfiddle.net/jeanluca/9Xasr/6/
有什么建议吗?
干杯
最佳答案
您正在为 App.IndexView 调用 Controller 的 doStuff()
,但您在 Route 中定义了 doStuff
。您应该将其移至 App.IndexController
中:
App.IndexController = Em.Controller.extend({
doStuff: function(e) {
alert("Do stuff") ;
}
});
fiddle :http://jsfiddle.net/8k4PE/
另一方面,如果您希望路由接收事件:
<script type="text/x-handlebars" data-template-name="navigation">
<span {{action "doStuff}}>Sidebar</span>
</script>
App.IndexRoute = Em.Route.extend({
//...
events: {
doStuff: function(e) {
alert("Do stuff") ;
}
}
});
关于ember.js - Ember Js : Custom event not received in the Router,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676763/