Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs-绑定到promise内部时未播放视频_Javascript_Angularjs_Angularjs Directive_Angularjs Scope_Html5 Video - Fatal编程技术网

Javascript Angularjs-绑定到promise内部时未播放视频

Javascript Angularjs-绑定到promise内部时未播放视频,javascript,angularjs,angularjs-directive,angularjs-scope,html5-video,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Html5 Video,我有一个播放html5视频的视频指令: (function(){ angular.module('app.video') .directive('demoVideo', demoVideo); function demoVideo(){ return{ templateUrl: "videoTemplate.html", controller: function(video

我有一个播放html5视频的视频指令:

    (function(){
    angular.module('app.video')
                .directive('demoVideo', demoVideo);


    function demoVideo(){
        return{
            templateUrl: "videoTemplate.html",
            controller: function(videoService, $sce){
                var vm = this;
                videoService.get().then(function(data){
                    vm.videoDataUrlMp4 = $sce.trustAsResourceUrl(data.video);//"http://pdl.vimeocdn.com/89496/595/203684545.mp4?token2=1418313891_4826d99475da5695f5d7999863fb212c&aksessionid=732c8c4ae38ae4aa"
                });
            },
            bindToController: true,
            controllerAs: 'video'  
        }
    }    

})();
模板为:

<script type="text/ng-template" id="videoTemplate.html">
<video id="video" controls="true">
        <source id="mp4" ng-src="{{ video.videoDataUrlMp4 }}" type="video/mp4">
        <p>Your user agent does not support the HTML5 Video element.</p>
</video>
问题是视频没有加载。我可以看到src被设置为视频的源,但是它没有被加载。当我将绑定更改为直接绑定而不是在回调中时,它确实有效

我尝试了$scope.$apply,但运气不佳,会抛出一个错误

我错过了什么


tnx

您是否尝试返回该值

像这样:

     videoService.get().then(function(data){
                    vm.videoDataUrlMp4 = $sce.trustAsResourceUrl(data.video);//"http://pdl.vimeocdn.com/89496/595/203684545.mp4?token2=1418313891_4826d99475da5695f5d7999863fb212c&aksessionid=732c8c4ae38ae4aa";
                    return vm.video.DataUrlMp4;
                });

将值返回给谁?不需要返回值。他把它隐式地分配给了Scope你解决了吗?我也有同样的情况?