0

在jquery中当你为一个按钮指定一个点击处理程序时,你可以参考this获取被点击的按钮。但是,当您使用时{{action blah}} this指的是控制器。有什么方法可以在无需查询的情况下获取该按钮?并不是说很难做到$("#myButton")只是好奇......

App.MyController = Em.Controller.extend({
    buttonClicked:function() {
        //this.?
    }
})
4

2 回答 2

0

我相信这需要一个视图,它不仅可以简化您的代码,还可以使其更易于维护。控制器旨在操作数据并使用您发送的数据响应事件。它不应该知道它所关联的视图。

因此,在视图中您可以执行以下操作:

App.SpecialButtonView = Ember.View.extend
  click: ->
    #Handle your action here

然后,您可以例如做一些事情,例如@get("controller").send("doSomething")如果您必须用数据做一些事情。

于 2013-05-02T23:06:13.530 回答
0

{{action}}除了动作名称之外,还有一个参数。所以你可以这样做:{{action "blabla" "blabla"}}并将其用于:

blabla: function(param) {
  if (param === 'blabla') {
    // action handler here
  }
}
于 2013-05-02T07:56:17.140 回答