Angularjs Froogaloop Vimeo';完成';角度指令中的事件
我在角度指令中触发Vimeo“Finish”事件时遇到问题。 Vimeo视频正在加载,播放和暂停功能正常工作 我的HTML代码Angularjs Froogaloop Vimeo';完成';角度指令中的事件,angularjs,angularjs-directive,vimeo,froogaloop,Angularjs,Angularjs Directive,Vimeo,Froogaloop,我在角度指令中触发Vimeo“Finish”事件时遇到问题。 Vimeo视频正在加载,播放和暂停功能正常工作 我的HTML代码 <vimeo control-boolean="isPlaying" vid="{{videoslist[id].code}}" pid="1"></vimeo> <button ng-click="prevVid()">Prev</button> <button ng-if="isPlaying" ng-click
<vimeo control-boolean="isPlaying" vid="{{videoslist[id].code}}" pid="1"></vimeo>
<button ng-click="prevVid()">Prev</button>
<button ng-if="isPlaying" ng-click="status()">Pause</button>
<button ng-if="!isPlaying" ng-click="status()">Play</button>
<button ng-click="nextVid()">Next</button>
<div class="videoInfo">
<h2>{{videoslist[id].title}}</h2>
<p>{{videoslist[id].discription}}</p>
</div>
directive('vimeo', function($sce) {
return {
restrict: 'EA',
replace: true,
scope: {
//Assumes that true means the video is playing
controlBoolean: '='
},
template: '<iframe id="video"></iframe>',
link: function postLink(scope, element, attrs) {
attrs.$observe('vid', function(value) {
var url = "http://player.vimeo.com/video/" + attrs.vid + "?title=0&byline=0&portrait=0&api=1&autoplay=true";
element.attr('src', url);
var iframe = element[0],
player = $f(iframe);
player.addEvent("ready", function() {
player.addEvent('finish', onFinish);
});
function onFinish() {
console.log("vimeo finish")
}
scope.$watch('controlBoolean', function(){
if(scope.controlBoolean){
player.api('play');
}
else{
player.api('pause');
}
});
});
}
};
});
我用它来帮助我执行指令:
以及Vimeo的网站,了解“如何触发事件”:
有人知道我做错了什么吗 您应该在内部添加finish和ready事件的代码,如下所示:
scope.$watch('controlBoolean', function(){
if(scope.controlBoolean){
player.api('play');
player.addEvent("ready", function() {
console.log("vimeo ready");
player.addEvent('finish', onFinish);
});
} else {
player.api('pause');
}
});
我修改了plunker,它对我有效
scope.$watch('controlBoolean', function(){
if(scope.controlBoolean){
player.api('play');
player.addEvent("ready", function() {
console.log("vimeo ready");
player.addEvent('finish', onFinish);
});
} else {
player.api('pause');
}
});