在jquery中当你为一个按钮指定一个点击处理程序时,你可以参考this
获取被点击的按钮。但是,当您使用时{{action blah}}
this
指的是控制器。有什么方法可以在无需查询的情况下获取该按钮?并不是说很难做到$("#myButton")
只是好奇......
App.MyController = Em.Controller.extend({
buttonClicked:function() {
//this.?
}
})
我相信这需要一个视图,它不仅可以简化您的代码,还可以使其更易于维护。控制器旨在操作数据并使用您发送的数据响应事件。它不应该知道它所关联的视图。
因此,在视图中您可以执行以下操作:
App.SpecialButtonView = Ember.View.extend
click: ->
#Handle your action here
然后,您可以例如做一些事情,例如@get("controller").send("doSomething")
如果您必须用数据做一些事情。
{{action}}
除了动作名称之外,还有一个参数。所以你可以这样做:{{action "blabla" "blabla"}}
并将其用于:
blabla: function(param) {
if (param === 'blabla') {
// action handler here
}
}