0

jqueryでボタンのクリックハンドラを指定すると、参照しthisてクリックされたボタンを取得できます。ただし、使用する場合{{action blah}} thisはコントローラを指します。クエリを実行せずにそのボタンを取得する方法はありますか? $("#myButton")好奇心旺盛なだけで難しいわけではありません...

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

2 に答える 2

0

{{action}}アクション名に加えて、パラメーターを取ります。したがって、次のことができます{{action "blabla" "blabla"}}

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

これには、コードを単純化するだけでなく、保守を容易にするビューが必要だと思います。コントローラーは、データを操作し、送信したデータでイベントに応答することを目的としています。関連付けられているビューについて知る必要はありません。

したがって、ビューで次のことができます。

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

次に、たとえば@get("controller").send("doSomething")、データで何かを作成する必要がある場合のようなことを行うことができます。

于 2013-05-02T23:06:13.530 に答える