ember.js - Ember Js : Custom event not received in the Router

标签 ember.js eventtrigger custom-event

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/

相关文章:

javascript - 当从属属性更改时,Ember 计算属性不会更新

mysql - 将触发器添加到 Magento 表中以更新数量

javascript - 如何获取 JQuery.trigger ('click' );启动鼠标点击

ASP.NET 文本框 LostFocus 事件

javascript - 如何在 Ember.js 上导入库?

javascript - Ember CLI - 用于第 3 方 API 的 RESTAdapter

javascript - Ember 从普通 Javascript 调用 Action 处理程序

c# - WPF:如何为内容更改创建路由事件?

c++ - COM c++ 中的自定义事件处理