私はEmber.jsを使用しており、2つの異なるアクションを持つdiv要素を作成しようとしています。1つはマウスが入るとき、もう1つはマウスが出るときです。私がやろうとした:
<div {{action "stopInfo" on="mouseLeave"}} {{action "startInfo" on="mouseEnter"}}>
ただし、最初のアクション(マウスリーブ)のみがトリガーされます。
同じ要素に対して2つのアクションを実行する方法はありますか?ありがとう
私はEmber.jsを使用しており、2つの異なるアクションを持つdiv要素を作成しようとしています。1つはマウスが入るとき、もう1つはマウスが出るときです。私がやろうとした:
<div {{action "stopInfo" on="mouseLeave"}} {{action "startInfo" on="mouseEnter"}}>
ただし、最初のアクション(マウスリーブ)のみがトリガーされます。
同じ要素に対して2つのアクションを実行する方法はありますか?ありがとう
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
複数のビュー イベントに対して同じ関数を使用する方法を説明するために、ここでヘルパーを使用しました ...
これは、Ember の次のバージョン (1.13) でサポートされる可能性があります。それを修正する PR はこちら: https://github.com/emberjs/ember.js/pull/11373
そのためにはember-composable-helpersを使用します。
<button {{action (pipe addToCart purchase redirectToThankYouPage) item}}>
1-Click Buy
</button>
また
<button {{action (queue (action "backupData") (action "unsafeOperation") (action "restoreBackup"))}} />