Emberjs-操作一次点击就会触发3次



在我使用Emberjs的应用程序中,每次单击都会触发3次操作。

例如,使用以下模板和视图:

模板:

<button {{action "removeFoo"}}>remove</button>

点击处理程序视图:

listsView = Ember.View.create({
  templateName: 'lists',
  removeFoo: function(event) {
    event.preventDefault();
    console.log(new Date().valueOf());
  }
})

我在控制台中得到以下3个输出:

1333634360209
1333634360215
1333634360217

有人知道是什么原因造成的吗?或者调试问题的最佳方法是什么?

实际的问题是,Ember应用程序是Rails应用程序的一部分,该应用程序已经有另外两个Ember应用。那些Ember应用程序没有指定rootElement。为每个Ember应用程序添加一个rootElement解决了这个问题。

我不知道为什么要多次调用它,但您是否有意重写Ember.View#remove?如果是这样的话,你可能想调用this._super(),这样它就会破坏元素等…

以下是来源中对它的定义:https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L770

如果这不是你的意图,你可能想把你的行动称为其他事情,看看是否能解决问题。

使用最新的Ember.js版本0.9.6效果良好,请参阅http://jsfiddle.net/pangratz666/BxccU/

最新更新