2012-12-20 77 views
1

事件绑定我刚开始用Ember.js,我仍然不明白为什么事件视图中绑定的东西,像这样Ember.js - 控制器

App.ClickableView = Ember.View.extend({ 
    click: function(evt) { 
    alert("ClickableView was clicked!"); 
    } 
}); 

在JavaScriptMVC和Sencha Touch这样的东西在控制器中处理。例如,如何将多个控制器绑定到相同的事件?

干杯

+0

在你的车把模板您可以使用动作助手... {上=“点击”目标=“控制器”} {行动handlerName这}像这样''但你最好要重命名的'handlerName'更合适的东西。如果它是一个按钮或链接你并不需要指定'上='click'' – MilkyWayJoe

回答

0

事件默认情况下已更改为从灰烬中的最新版本的查看路由器(控制器)。本次活动将通过当前路由器(州)进行处理,像这样:

root : Ember.Route.extend({ 
    index : Ember.Route.extend({ 
     route : '/', 
     connectOutlets : function(router) { 
      var ac = router.get('applicationController'); 
      ac.connectOutlet({ 
       name : 'topnav', 
       outletName : 'topnav' 
      }); 
     }, 
     click: function(event, context) { 
      alert("ClickableView was clicked!"); 
     } 
}) 

如果你有在其他国家其他点击事件,因为它知道它是在哪个国家/路由应用程序将不能混淆。

您可以处理视图或控制器的事件,但建议来处理它们的路由器。

+0

我猜你需要绑定的东西到‘点击’功能/动作。这是如何完成的? –

+0

对于浏览器事件,它是自动完成的。如果用户点击按钮,会引发点击事件,然后传递给路由器进行处理。您也可以在标记中定义自定义事件,如下所示:{{action custom}} – buuda