2017-01-06 11 views
0

$windowと組み合わせて使用​​された場合に、Angular/Ionicアプリで複数回発生するのを防ぐ方法についてのヘルプを探しています。具体的には、このメソッドをWistiaのビデオに使用しています(指示されているようにhere)。問題のコードは次のとおりです。Anglerコントローラで複数回onReadyイベントが発生する

$window._wq = $window._wq || []; 
$window._wq.push({ id: "5bbw8l7kl5", onReady: function(video) { 
    console.log("I got a handle to the video using Wistia's onReady method!", video.uuid); 
}}); 

onReadyメソッドを複数回実行し終わる$window._wqを使用することについて、それを何ですか?

onReadyが毎回コントローラービューに戻ったときに一度だけ点火するように、このコードをどのように角度付けできるか(「ハッキングする」または回避する必要はありません)

ローカルで問題を再現するために使用できるサンプルコードを用意していますが、これを選択した場合はhereです。

洞察力、思考、アイデアは非常に高く評価されます。

+0

あなたは 'iframe'埋め込みまたは指定埋め込みを使用していますか? – GentlemanMax

+0

@GentlemanMax:[here](https://wistia.com/doc/embed-options#setting_options_on_standard_and_popover_embeds)に記載されている標準のJS埋め込みオプションを使用しています。 「iframe」はありません。 – raie

答えて

0

これらは、問題の原因となる可能性のあるオプションです。
1.同じIDの動画が複数あると思います。彼はあなたが角度を使用している_wq.pushの代わり$window._wq.push
3を使用するAPIページで
2.、あなたはあなたがこれらの匿名の倍数を持っているかもしれません同じNG-モデルやNG-クリックイベントで2本のビデオ

+0

返事をありがとう、nivas。 Wistiaの指示[こちら](https://wistia.com/doc/embed-options#setting_options_on_standard_and_popover_embeds)に従っています。実際の埋め込みのために 'class =" wistia_embed wistia_async_5bbw8l7kl5 "'で1つの 'div'を使用しています。コントローラーでは、Wistiaの指示に従ってここで' $ window._wq'を使用しています(https:// wistia.com/doc/player-api#use_windowwq_to_get_a_video_handle)を使用してビデオプレーヤーを取得し、ビデオの初期化時に追加の機能を実行できるようにします。だから私はどこにでも複数の動画を使っているとは思わない? – raie

+0

また、 '_wq.push'と' $ window._wq.push'の間の公正な点については理解していますが、 '$ window'に添付されたオブジェクトはすべてグローバルオブジェクトになるので、実際には同じものだと私は理解しています。少なくとも、私は自分のコードで両方を試してみましたが、何の効果もありません。同じ問題が残っています。 – raie

0

を持って確認しました関数のコールバックが浮動小数点になります。私は、別の関数にonReadyコールバックを抽出し、オブジェクト内のonReadyに関数を渡すことをお勧めします。

$window._wq = $window._wq || []; 
$window._wq.push({ id: "5bbw8l7kl5", onReady: onReadyCallback }); 
var onReadyCallback = (video) => { console.log('I got a handle to the video using Wistia's onReady method!', video.uuid }; 

これは、少なくとも匿名関数の外にコードを分離して、発射複数のイベントの根本原因を突き止めるのに役立ちます関数の呼び出し元を特定するのに役立ちます。範囲内に複数のコントローラーインスタンスがあるかもしれませんが、WistiaやIonicの経験はありません。

+0

素晴らしい提案。私たちはこれを試してみましょう。どうもありがとう! – raie

+0

@raie、もうこれ以上来たのですか?私は同じ問題を抱えていますが、React –

関連する問題