angularjs – 空ng-src不更新图像

前端之家收集整理的这篇文章主要介绍了angularjs – 空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建议。

原文链接:https://www.f2er.com/angularjs/145968.html

猜你在找的Angularjs相关文章