我有一個angularjs應用程序,我想在新聞源中顯示一些youtube視頻。 我已經創建了一個指令來加載播放器,並且在我第一次進入包含視頻的視圖時加載了我的視頻。但是,如果我離開視圖,並再次打開我的視頻不加載。onYoutubeIFrameAPIReady只開了一次
看來,事件「onYouTubeIframeAPIReady」僅在我第一次進入視圖時觸發。
的視圖:
<div bind-html-compile="newsitem.description"></div>
的newsitem.description是原始HTML發送給應用程序,JSON。
所以它可能看起來像:
{'this is a video <youtube videoid="myYoutubeVideoId"></youtube>'}
這也是爲什麼使用IM綁定,HTML編譯指令。
該指令
.directive('youtube', function($window) {
return {
restrict: "E",
scope: {
videoid: "@"
},
template: '<div></div>',
link: function(scope, element, attrs) {
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
$window.onYouTubeIframeAPIReady = function() {
player = new YT.Player(element.children()[0], {
playerVars: {
autoplay: 0,
html5: 1,
theme: "light",
modesbranding: 1,
color: "white",
iv_load_policy: 3,
showinfo: 0,
controls: 0,
rel: 0,
},
videoId: scope.videoid
});
};
}
}})
,當我從onYoutubeIFrameAPIReady CONSOLE.LOG我只得到輸出的第一次.. 所以即時通訊思想,該事件被觸發不知何故之前的功能已準備就緒,但我可以真的不知道。
任何想法?
證實了這一工作。現在使用工廠,我可以看到我所有的視頻都在播放。 – Squiggler
Excactly我需要..謝謝! – OngoBoingo