加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular1.3.X中embed标签使用ng-src的bug

发布时间:2020-12-17 10:05:08 所属栏目:安全 来源:网络整理
导读:在项目中需要在页面中引入优酷的视频,于是使用了embed标签,并用ng-src动态绑定了视频链接。 在使用中发现页面展现时,视频那一块儿并没有加载出来,查看HTML源码,Angular明明已经把视频链接绑定成功了。所以问题应该在于浏览器没有主动去加载ng-src指向的

在项目中需要在页面中引入优酷的视频,于是使用了embed标签,并用ng-src动态绑定了视频链接。

在使用中发现页面展现时,视频那一块儿并没有加载出来,查看HTML源码,Angular明明已经把视频链接绑定成功了。所以问题应该在于浏览器没有主动去加载ng-src指向的视频。

后来经过了解,这是Angular 1.3版本的一个bug。

github上关于这个问题的讨论:issue:ngSrc doesn't work with embed


下面贴出我的代码和整理的解决方案:

之前不成功的绑定:

<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" />

解决办法:

使用指令自己绑定视频链接,检测到视频链接发生变化的时候,在dom中替换掉之前的embed标签。

1、HTML中的指令:

<embed embed-src="....">
2.js文件中对应的指令:
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;
      });
    }
  };
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读