【问题标题】:Why is ngSrc needed for images and not other elements?为什么图像需要 ngSrc 而其他元素不需要?
【发布时间】:2016-01-04 12:23:28
【问题描述】:

AngularJS 官方教程指出 ngSrc

阻止浏览器处理 Angular {{ 表达式 }} 标记 从字面上看,并向无效 URL 发起请求

但是为什么专门用​​于图像呢?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    因为浏览器会在 angularjs 重写 url 之前解释 dom,并且会尝试加载字面上称为 {{ expression }} 的资源,这当然是错误的,因为它甚至不是 url。使用ngSrc,angular会尽快填充img标签的src属性。

    【讨论】:

      【解决方案2】:

      刚刚找到答案...

      这里的问题是浏览器会为此触发一个请求 一碰到img标签就无效的图像地址,这是之前 Angular 有机会评估表达式并注入有效的 地址。

      【讨论】:

        【解决方案3】:

        当你使用 src 和表达式时,它是不可解析的:

        <img src="{{expression}}" alt="" />
        

        会导致文件路径出错。

        但是使用 ngSrc,表达式会被 angularjs 解析,像 url 这样的表达式的值会被解析并显示为 html 中的最终结果:

        <img src="{{expression}}" alt="" />
        

        将根据您的表达式生成其文件路径的 url,这将是这样的:

        <img src="images/path.jpg" alt="" />
        

        【讨论】:

          猜你喜欢
          • 2014-03-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-28
          • 2018-05-14
          • 1970-01-01
          • 2018-03-18
          相关资源
          最近更新 更多