17

私はEmber.jsを使用しており、2つの異なるアクションを持つdiv要素を作成しようとしています。1つはマウスが入るとき、もう1つはマウスが出るときです。私がやろうとした:

<div {{action "stopInfo" on="mouseLeave"}} {{action "startInfo" on="mouseEnter"}}>

ただし、最初のアクション(マウスリーブ)のみがトリガーされます。

同じ要素に対して2つのアクションを実行する方法はありますか?ありがとう

4

3 に答える 3

17

issue #569によると、タグの複数のアクション ヘルパーはサポートされていません。複数のイベントを処理するには、カスタムEmber.Viewを使用する必要があります。あなたの場合、このようなものは、 http : //jsfiddle.net/pangratz666/2V9cP/を参照してください。

ハンドルバー:

{{#view App.ActionView}}
    ... content of div ...
{{/view}}

JavaScript :

App.ActionView = Ember.View.extend({
    stopInfo: function(evt) { console.log('stop info'); },
    startInfo: function(evt) { console.log('start info'); },

    click: Ember.alias('stopInfo'),
    mouseLeave: Ember.aliasMethod('stopInfo'),

    mouseEnter: Ember.aliasMethod('startInfo')
});​

Ember.alias複数のビュー イベントに対して同じ関数を使用する方法を説明するために、ここでヘルパーを使用しました ...

于 2012-07-18T15:26:23.317 に答える
10

これは、Ember の次のバージョン (1.13) でサポートされる可能性があります。それを修正する PR はこちら: https://github.com/emberjs/ember.js/pull/11373

于 2015-06-08T15:52:56.353 に答える
1

そのためにはember-composable-helpersを使用します。

<button {{action (pipe addToCart purchase redirectToThankYouPage) item}}>
  1-Click Buy
</button>

また

<button {{action (queue (action "backupData") (action "unsafeOperation") (action "restoreBackup"))}} />
于 2016-09-21T19:43:39.970 に答える