javascript - angularJS不主动去加载视频?
天蓬老师
天蓬老师 2017-04-11 10:59:33
[JavaScript讨论组]

我使用ng-src引用了优酷的视频,代码如下:

<embed type="application/x-shockwave-flash" class="edui-faked-video" pluginspage="http://www.macromedia.com/go/getflashplayer" ng-src="{{videoDetail.videocode|trusted}}" width="740" height="500" wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" />

那么我查看渲染后的HTML,ng-src确实已经得到视频地址:

但是页面那一块儿是空白的,连优酷的视频框都没有;;;

补充:如果我把上面截图中的HTML放到一个测试页面里,视频是可以加载播放的【或者说我把ng-src那里换成一个普通的优酷视频地址,是正常的】

所以,Angular为什么不去加载视频呢?怎么解决这个问题

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
大家讲道理

这是一个已知bug,不过目前你可以通过自己手写一个指令来解决这个问题

app.directive('embedSrc', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            var current = element;
            scope.$watch(attrs.embedSrc, function () {
                var clone = element.clone().attr('src', attrs.embedSrc);
                current.replaceWith(clone);
                current = clone;
            });
         }
    };
})
<embed embed-src="...">

详细的讨论,在issue

巴扎黑

最终在issue里面找到下面的代码成功地跑起来:

app.directive('embedSrc', function () {
  return {
    restrict: 'A',
    link: function (scope, element, attrs) {
      var current = element;
      scope.$watch(function() { return attrs.embedSrc; }, function () {
        var clone = element
                      .clone()
                      .attr('src', attrs.embedSrc);
        current.replaceWith(clone);
        current = clone;
      });
    }
  };
})

对应的html : <embed embed-src="...">

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号