我有一个带有视频列表的应用程序,我不想一次加载所有视频,只是当用户选择视频然后选择播放时(是的,这是一个两步过程) .
因此,当用户选择视频时,我尝试仅将该视频的iframe播放器嵌入到所选元素中 .
在我的控制器中,我有
$scope.selectedVideo = function(index){
if($scope.activeVideo===index)return; // preventing bubbling from closeSelected (I hope)
if($scope.activeVideo !== null){
$scope.closeSelected();
}
var video = $scope.videos[index];
video.embed = '<span><iframe src="https://www.youtube.com/embed'+video.id+'"></iframe> does something show?</span>';
video.active = true;
$scope.activeVideo=index;
}
在我的HTML中,我有
<div ng-bind-html="video.embed"></div>
我已经尝试了各种各样的 ng-bind-html-unsafe
(我认为已经弃用了),但实际上没有任何内容将iframe放入页面 .
我正在使用角度版本1.2.15,并且我在控制器中包含了ngSanitize .
1 回答
我认为你正在努力,ng-bind-html-unsafe就像你说的那样被弃用了 . 这样做的新方法是注入$ sce并使用
trustAsHtml
http://docs.angularjs.org/api/ng/service/$sce
你可以像这样制作一个过滤器:
然后在你的HTML中执行以下操作:
不确定
video
是否真的属于范围?但实际上听起来你做错了 . 您是否尝试过使用ng-view?这样您就可以交换该视图的内容(内容为iframe) .http://docs.angularjs.org/api/ngRoute/directive/ngView
希望能帮助到你!