【发布时间】:2016-08-15 12:56:40
【问题描述】:
我是 Angular 新手,我正在尝试使用此模板制作自定义指令:
<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="youtubePlayer" player-vars="playerVars" class="video"></youtube-video>
<div ng-hide="videoPlaying" class="iframe-overlay" ng-click="playVideo(youtubePlayer)">
<img ng-hide="videoPlaying" class="play" src="icons/play.svg"/>
<img ng-hide="videoPlaying" class="playButton" src="icons/playRectangle.svg"/>
</div>
在这种情况下youtube-video 是另一个指令,因为我使用的是youtube-angular-embed 包。
我想知道如何将我的情况下的 URL {{ article.external_media[0].video_id }} 传递给 ng-src 以获取指令中的图像?
到目前为止,这是我的指令所取得的进展:
angular.module('coop.directives')
.directive('youtubePlayer', function () {
return {
restrict: 'E',
scope: {
videoPlaying: '=videoPlaying',
playVideo = '=playVideo'
},
template : "<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)'><img ng-hide='videoPlaying' class='play' src='icons/play.svg'/><img ng-hide='videoPlaying' class='playButton' src='icons/playRectangle.svg'/></div>",
link: function (scope, element, attrs, ngModel) {
}
};
});
然后在我看来,我正在调用这样的指令:
<youtube-player></youtube-player>
【问题讨论】:
-
看起来您还没有在指令中定义控制器,所以您的 {{ article.external_media[0].video_id }} 看起来是未定义的
标签: javascript angularjs