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

angularjs – 空ng-src不更新图像

发布时间:2020-12-17 08:43:38 所属栏目:安全 来源:网络整理
导读:我使用ng-src指令,以避免浏览器在Angular评估表达式之前请求图像。 ng-src = {{image}}将更新图像的src属性,如果表达式“image”改变。 我误解为什么ng-src指令不更新图像的路径,如果表达式(“myImage.png”)变为空(“”)。 当表达式变为空时,ng-src属性
我使用ng-src指令,以避免浏览器在Angular评估表达式之前请求图像。

ng-src = {{image}}将更新图像的src属性,如果表达式“image”改变。
我误解为什么ng-src指令不更新图像的路径,如果表达式(“myImage.png”)变为空(“”)。

当表达式变为空时,ng-src属性变为空,但src属性仍然是最后一个已知的src。所以它不更新图像。为什么src属性没有更新(到空的src),以便图像“消失”。

这里是一个plunker

谢谢

对此的答案是在Angular代码。这不是一个bug,它只是他们决定他们想要的行为。从第13895行开始,你可以看到这个指令代码:
forEach(['src','srcset','href'],function(attrName) {
   var normalized = directiveNormalize('ng-' + attrName);
   ngAttributeAliasDirectives[normalized] = function() {
   return {
      priority: 99,// it needs to run after the attributes are interpolated
      link: function(scope,element,attr) {
          attr.$observe(normalized,function(value) {

         if (!value)
             return;

         attr.$set(attrName,value);

         if (msie) element.prop(attrName,attr[attrName]);
       });
     }
    };
  };
});

关键是:

if(!value)return;

所以你可以看到,如果你将ng-src表达式改为一个空字符串,这将永远不会改变实际的src值。你可以解决这个问题MadScone建议。

(编辑:李大同)

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

    推荐文章
      热点阅读