0

使用我在此处找到的 Ember 的自定义事件时,我找不到传递参数的方法。我更喜欢避免专门针对“父”视图的解决方案,例如这个,因为我们失去了“冒泡”。

我的用法如下

插件.js

Em.Object.reopen({
    triggerEvent: function (eventName) {
        this.$().trigger(eventName, this);
    }
});

MyView.js

点击:函数(){

   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);
     }

提前超级感谢,
奥伦鲁宾

4

1 回答 1

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}}在您的模板中使用。以这个答案为例。

于 2012-12-10T23:47:13.157 回答