0

Emberjs を使用する私のアプリでは、すべてのアクションが 1 回のクリックで 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 アプリが、他の 2 つの Ember アプリを既に持っている Rails アプリケーションの一部であったことです。これらの Ember アプリには指定がありませんでしたrootElementrootElementすべての 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 に答える