Ember:使用{{action}}标记处理多个事件?

Sté*_*tte 17 javascript ember.js

我正在使用Ember.js并且我正在尝试使用两个不同动作的div元素:一个是鼠标进入,一个是鼠标离开.我试着这样做:

<div {{action "stopInfo" on="mouseLeave"}} {{action "startInfo" on="mouseEnter"}}>
Run Code Online (Sandbox Code Playgroud)

但它只触发第一个动作(mouseleave).

有没有办法在同一个元素上有2个动作?谢谢

pan*_*atz 17

根据问题#569,不支持标记的多个动作帮助程序.要处理多个事件,您应该使用自定义Ember.View.在你的情况下,请参阅http://jsfiddle.net/pangratz666/2V9cP/:

把手:

{{#view App.ActionView}}
    ... content of div ...
{{/view}}
Run Code Online (Sandbox Code Playgroud)

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')
});?
Run Code Online (Sandbox Code Playgroud)

我在Ember.alias这里使用了帮助器,只是为了说明如何在多个视图事件中使用相同的函数...


Luk*_*lia 10

这可能会在下一版Ember(1.13)中得到支持.修复它的PR在这里:https://github.com/emberjs/ember.js/pull/11373