【问题标题】:Emberjs - actions get triggered 3 times on a single clickEmberjs - 单击一次即可触发 3 次操作
【发布时间】:2012-07-02 20:20:33
【问题描述】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我不确定为什么会多次调用它,但您是否有意覆盖 Ember.View#remove?如果是这样,您可能需要调用 this._super() 以便它破坏元素等...

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

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

      【讨论】:

      • 对不起,我的操作实际上命名不同。我改变了例子。感谢您的提示。
      • 啊没问题,你能在 jsfiddle.net 上复制它吗?根据@pangratz,目前它似乎对我来说很好。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-04-29
        • 1970-01-01
        • 2016-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多