我的應用程序從REST服務中加載多個對象。每個對象都包含一個代表視頻文件的Uri的屬性。我的應用程序以此爲源向用戶顯示多個視頻。AngularJS HTML5視頻ng-src爲空指令
因爲我需要當用戶播放視頻(事件),我加載使用角指令HTML5視頻標記捉:
app.directive("aVideo", function($http){
return {
template: '<video class="col-xs-12 col-sm-12 col-md-12" ng-src="[[[creativeViewModel.post.addTrustedUri()]]]" controls preload="metadata"</video>',
scope:{
creative: "=",
},
link: function(scope, element, attrs) {
$(element).find("video").on("play", function() {
$http.post('/post/' + scope.creative.post.doc_id + '/views?_csrf=' + csrfToken)
.success(function(data){
})
.error(function(error){
});
});
},
}
});
因此,用於視頻的HTML標記是這樣的:
<div a-video creative="creativeViewModel"></div>
功能addTrustedUri是對象本身的一部分,如下:
addTrustedUri: function addTrustedUri() {
return $sce.trustAsResourceUrl(this.post.media);
},
然而,以下是返回給用戶瀏覽器的代碼:
<video class="col-xs-12 col-sm-12 col-md-12" ng-src="" controls="" preload="metadata" <="" video=""></video>
正如你所看到的,即使我使用$ sce.trustAsResourceUrl方法啓用它,ng-src屬性顯示爲空。請注意,正在加載視頻文件的域與應用的域不同(它是CDN)。
有關如何解決此問題的任何想法?
我知道這篇文章已經很長時間了,但是您找到了解決方案嗎? – Bonswouar 2016-04-21 15:16:04
@Bonswouar在下面看到自己的答案。 – 2016-04-23 09:13:14