在使用我发现的here的Ember自定义事件时,我无法找到传递参数的方法。 我更愿意避免以“父母”为目标的解决方案。特别是观点,例如this one,因为我们失去了"冒泡"。
我的用法如下
plugins.js
Em.Object.reopen({ triggerEvent: function (eventName) { this.$().trigger(eventName, this); } });
MyView.js
点击:function(){
this.triggerEvent('stepClicked');
}
Ember(0.96+)中的代码表明,传递额外的参数被认为是经理,不会传递
rootElement.delegate('.ember-view', event + '.ember', function(evt, triggeringManager) { ... if (manager && manager !== triggeringManager) { result = self._dispatchEvent(manager, evt, eventName, view); } else if (view) { result = self._bubbleEvent(view,evt,eventName); }
提前非常感谢,
奥伦鲁宾
答案 0 :(得分:0)
您可以传递一个事件对象,该对象将告诉您点击了哪个元素:
click: function(event){
// will be called when when an instance's
// rendered element is clicked
console.log("element clicked: " + this.get('elementId') );
return false; // return true if you want the click event to bubble up to parent view (default it true)
}
我认为更好的方法是在模板中使用{{action}}
。请查看this answer示例。