0

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

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

4

3 回答 3

2

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

于 2012-07-02T12:20:33.963 回答
1

我不知道为什么它被多次调用,但你是故意覆盖的Ember.View#remove吗?如果是这样,您可能需要调用this._super()以破坏元素等...

这是源代码中的定义: https ://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L770

如果这不是您的意图,您可能希望将您的操作称为其他内容,看看是否能解决问题。

于 2012-04-05T14:15:57.203 回答
0

使用最新的 Ember.js 版本0.9.6可以正常工作,请参阅http://jsfiddle.net/pangratz666/BxccU/

于 2012-04-05T14:41:57.113 回答