假设我有一个包含多个button
元素的模板。如果我想观看一个click
事件,那么我只需使用{{action}}
助手。但我想不出一种传递其他事件的方法,比如mouseEnter
or mouseLeave
。我本来想使用Ember.Button
并以某种方式完成它,childViews
但它似乎已被弃用。
模板
{{#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中实现了这种行为,这是一个 jsFiddle 演示它的工作原理
编辑:
如果有人也对这个功能感兴趣,讨论会在这里进行。