在jquery中,当您为按钮指定单击处理程序时,您可以参考this
来获取被单击的按钮。当使用{{action blah}}
时,this
指的是控制器。有没有办法不需要查询就能得到那个按钮?并不是说$("#myButton")
很难做,只是好奇……
App.MyController = Em.Controller.extend({
buttonClicked:function() {
//this.?
}
})
{{action}}
除动作名称外还接受一个参数。所以你可以输入:{{action "blabla" "blabla"}}
然后在:
blabla: function(param) {
if (param === 'blabla') {
// action handler here
}
}
我相信这需要一个视图,它不仅会简化你的代码,而且使它更容易维护。控制器用于操作数据并使用发送给它的数据响应事件。它不需要知道它所关联的视图
在视图中你可以这样做:
App.SpecialButtonView = Ember.View.extend
click: ->
#Handle your action here
你可以这样做,例如@get("controller").send("doSomething")
,如果你需要做一些数据