假设我有一个包含多个button
元素的模板。如果我想观看click
事件,那么我只使用{{action}}
帮助器。但我无法找到传递其他事件的方法,例如mouseEnter
或mouseLeave
。我原本会考虑使用Ember.Button
并通过childViews
以某种方式进行,但似乎是deprecated。
模板
{{#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>
我在fork中实现了这种行为,而here是一个证明其有效的jsFiddle
修改
如果有人对此功能也感兴趣,则讨论将继续进行here。
答案 0 :(得分:9)
答案 1 :(得分:6)
... IIIa的
Ember团队决定允许像Button这样的元素上的多个动作助手不是最佳实践。他们的建议是使用像sly7_7这样的观点。请在Github上查看此问题报告: