除了点击之外,Ember.js {{action}}

Ili*_*oly 9 ember.js

可以说我有一个模板,里面有几个button元素.如果我想观看一个click事件,那么我只需要使用{{action}}帮助器.但我无法找到一种传递其他事件的方式,如mouseEntermouseLeave.我本以为要使用Ember.Button并以某种方式完成它childViews但它似乎被弃用了.

模板

{{#view App.MyView}}
    <button {{action "btnClicked"}}>button1</button>
    <button {{action "btnClicked"}}>button2</button>
{{/view}}
Run Code Online (Sandbox Code Playgroud)

JS

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

我知道我可以使用,{{action "btnMouseEnter" on="mouseEnter"}}但后来我失去了点击功能.我需要自己包装每个按钮Ember.View吗?如果是这样,为什么被Ember.Button弃用?

编辑:

我认为你应该能够有多个事件触发相同的事件 action

<button {{action "myAction" on="click mouseEnter mouseLeave"}}>button</button>
Run Code Online (Sandbox Code Playgroud)

我在实施这一行为这里是一个展示的jsfiddle它的工作

编辑:

如果有人也对此功能感兴趣,那么讨论就在这里进行.

sly*_*7_7 9

非常好的问题恕我直言.

我发现的唯一方法就是这个:http://jsfiddle.net/Sly7/Zvred/

我认为这是一种包装,所以不确定这是一个很好的答案......


com*_*ted 6

伊利亚...

Ember团队决定允许像Button这样的元素上的多个动作助手不是最​​佳实践.他们的建议是使用像sly7_7这样的观点.请在Github上查看此问题报告:

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