Javascript Wisita onReady事件在角度控制器中多次触发
正在寻找有关如何在与Javascript Wisita onReady事件在角度控制器中多次触发,javascript,angularjs,ionic-framework,wistia,window-object,Javascript,Angularjs,Ionic Framework,Wistia,Window Object,正在寻找有关如何在与$window结合使用时防止角度/离子应用程序中多次触发onReady的帮助。具体地说,我们将此方法用于Witia视频(按照说明)。违规代码是: $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 me
$window
结合使用时防止角度/离子应用程序中多次触发onReady
的帮助。具体地说,我们将此方法用于Witia视频(按照说明)。违规代码是:
$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);
}});
使用$window.\u wq
会多次执行onReady
方法吗
我们如何使此代码角度友好(无需“黑客攻击”或强制修改),以便每次重新访问控制器视图时,onReady
仅触发一次
我提供了一些示例代码,如果您愿意,可以用于在本地重现问题
任何见解、想法、想法都将不胜感激 这些都是可能导致问题的选项
1.我认为您有多个相同id的视频。
2.在api页面上,他使用了
\u wq.push
而不是$window.\u wq.push
3.您使用的是angular,您是否检查过您有两个具有相同ng型号或ng click事件的视频您可能有多个匿名函数回调浮动。我建议将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 };
这将帮助您至少将代码从匿名函数中隔离出来,并隔离函数的调用者,这将帮助您跟踪多个事件触发的根本原因。您可能还拥有多个控制器实例,但我没有任何Witia或Ionic经验。您使用的是
iframe
Embeddes还是directed Embeddes?@Gentleman Max:我们使用的是标准JS嵌入选项,如上所述。没有iframes
。感谢您的回复,nivas。我们按照威斯塔的指示行事。我们使用单个div
和class=“wistia_embed wistia_async_5bbw8l7kl5”
进行实际嵌入,然后在控制器中,我们使用$window.\u wq
按照wistia的指令抓取视频播放器,以便在视频初始化时执行附加功能。所以,我不认为我们在任何地方都在使用多个视频?另外,关于\u wq.push
与$window.\u wq.push
的比较也很公平。但我的理解是,任何附加到$window
的对象都会变成一个全局对象,所以我认为它们实际上是一样的。或者,至少,我在代码中尝试了这两种方法,但没有任何效果——仍然看到相同的问题。很好的建议。我们将尝试一下,看看它是否能让我们有所收获。非常感谢@雷,你有没有进一步的解释?我也有同样的问题,但有反应