2012-04-05 2 views
0

Emberjsを使用するアプリケーションでは、1回のクリックですべてのアクションが3回トリガされます。 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 

誰かがこれを引き起こしているか、問題をデバッグするための最良の方法は何かを知っていますか?

答えて

2

を参照してください。それらのEmberアプリにはrootElementが指定されていませんでした。すべてのEmberアプリにrootElementを追加することで問題は解決しました。

1

何度も呼び出されている理由はわかりませんが、意図的に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 を使用して

+0

申し訳ありませんが、私の行動は実際に異なっています。私は例を変更しました。ヒントをありがとう。 –

+0

ああ問題ありません、あなたはjsfiddle.netでそれを複製できますか? @pangratzによれば、現時点ではうまく動作しているようです。 – rlivsey

0

は正常に動作し、実際の問題は、エンバーアプリはすでに他の二つのエンバーのアプリを持っていたRailsアプリケーションの一部だったこと、だったhttp://jsfiddle.net/pangratz666/BxccU/

関連する問題