在我使用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/