2016-06-24 8 views
0

Ember.js:コンポーネントテストでアンバウンドイベントをアサートする方法以下のようなコンポーネントのコードで

didInsertElement() { 
    this.$('.something').on(//...); 
}, 
willDestroyElement() { 
    this.$('.something').off(//...); 
} 

あなたがイベント$._data(this.$('.something')[0], 'events')を照会する方法を持っていますが、破壊されたときに、要素がなくなっています。テストで、イベントが実際に破棄される前にバインドされていたと主張する方法はありますか?ページ上のすべてのイベントを照会して、問題のフィルターをどうにかする方法はありますか?

+0

イベントは、イベントをバインドされているか、またはバインドされていないかどうかを、その間にインターフェイスを追加してそこにトラッキングするかどうかを判断する方法はありません。 実際にあなた自身の質問に答えました。jQueryを使用してリスナーにアクセスすることです。コンポーネントを破棄する前に要素をキャッシュし、後でルックアップに使用します。 – runspired

+0

'willDestroyElement'メソッドを手動で起動し、unbound doneをチェックするだけで済みます。そして、フックが要素破棄の呼び出しであるかどうかを確認することができます –

+0

@runspiredあなたは正しいです。私が要素をキャッシュすると、 '$ ._ data(something、 'events') 'の呼び出しは、オブジェクトではなく未定義を返すので、これを宣言することができます。質問に答えると、私はあなたに信用を与えることができます! –

答えて

1

イベントがイベントにバインドされているかアンバインドされているのかをプログラム間で判断する方法はありません。

実際には、実際にあなた自身の質問に答えました。つまり、jQuery経由でリスナーにアクセスすることです。コンポーネントを破棄する前に要素をキャッシュし、後でルックアップに使用します。

関連する問題