9

いくつかのbutton要素を含むテンプレートがあるとしましょう。clickイベントを監視したい場合は、{{action}}ヘルパーを使用します。mouseEnterしかし、またはのような他のイベントを渡す方法を理解することはできませんmouseLeave。私は使用することを考えEmber.Button、どういうわけかそれをやり遂げたでしょうが、それは非推奨childViewsのようです。

レンプレート

{{#view App.MyView}}
    <button {{action "btnClicked"}}>button1</button>
    <button {{action "btnClicked"}}>button2</button>
{{/view}}

js

App.MyView = Em.View.extend({
    btnClicked: function(e){
       alert('btnClicked');
    },
    btnMouseEnter: function(e){
       alert('btnMouseEnter'); // how to call this?
    }
});​

使用できることはわかって{{action "btnMouseEnter" on="mouseEnter"}}いますが、クリック機能が失われます。各ボタンを独自にラップする必要がありますEmber.Viewか?もしそうなら、なぜEmber.Button非推奨になったのですか?

編集:

複数のイベントで同じトリガーを発生させることができるはずだと思いますaction

<button {{action "myAction" on="click mouseEnter mouseLeave"}}>button</button>

私はこの動作をフォークに実装しました。これがjsFiddleで動作することを示しています

編集:

誰かがこの機能にも興味を持っている場合は、ここで議論が行われています。

4

2 に答える 2

9

非常に良い質問私見。

私が見つけた唯一の方法はこれです:http://jsfiddle.net/Sly7/Zvred/

一種のラッピングだと思うので、良い答えかどうかはわかりません...

于 2012-06-12T07:46:02.503 に答える
6

イリア...

Emberチームは、Buttonなどの要素で複数のアクションヘルパーを許可することはベストプラクティスではないと判断しました。彼らの推奨は、sly7_7が示唆するようなビューを使用することです。Githubでこの問題レポートを確認してください。

https://github.com/emberjs/ember.js/issues/569

于 2012-06-12T16:43:41.320 に答える