Я новичок в angular, поэтому извиняюсь перед тем, если вопрос слишком новичок. Я пытаюсь создать пользовательскую директиву, и поскольку я уже использую директиву angular-youtube-embed, в моей новой директиве мне нужно передать объект player
из youtube-video
, в мою новую директиву, для функции playVideo
в моей возможности использовать ее. Интересно, как это сделать?
Вот как выглядит моя директива:
angular.module('coop.directives')
.directive('youtubePlayer', function () {
return {
restrict: 'E',
scope: {
videoPlaying: '=videoPlaying',
playVideo: '&playVideo',
playerVars: '=playerVars',
article: '=article'
},
templateUrl : 'templates/youtube-player.html'
};
});
Это мой файл youtube-player.html:
<img ng-hide='videoPlaying' ng-src='http://i1.ytimg.com/vi/{{ article.external_media[0].video_id }}/maxresdefault.jpg' class='cover'>
<youtube-video ng-if='videoPlaying' video-url='article.external_media[0].original_url' player='player' player-vars='playerVars' class='video'></youtube-video>
<div ng-hide='videoPlaying' class='iframe-overlay' ng-click='playVideo({player: player})'>
<img ng-hide='videoPlaying' class='play' src='icons/play.svg'/>
<img ng-hide='videoPlaying' class='playButton' src='icons/playRectangle.svg'/>
</div>
И это функция от контроллера, которую я хотел бы использовать в моей директиве:
$scope.playVideo = function(player) {
$scope.videoPlaying = true;
player.playVideo();
};
Где player
является объектом директивы youtube-video
, которую я использую из angular -youtube-embed package.
Таким образом, всякий раз, когда пользователь нажимает на элемент ниже, $scope.videoPlaying
должен стать true
, а функция playVideo()
должна запустить видео:
<div ng-hide='videoPlaying' class='iframe-overlay' ng-click='playVideo(player)'>
Вот как я вызываю свою директиву в представлении:
<youtube-player video-playing="videoPlaying" play-video="playVideo()" player-vars="playerVars" article="article"></youtube-player>
Мне нужно каким-то образом передать объект игрока из видео youtube в мою новую директиву, потому что теперь я получаю сообщение об ошибке:
ionic.bundle.js: 26794 TypeError: Не удается прочитать свойство 'playVideo' undefined: