javascript - AngularJS ng-if 用于加载图像时生成错误

标签 javascript angularjs

当我使用以下 AngularJS HTML 标记加载图标时,出现未找到错误(尽管一切都以图形方式运行):

<div class="page-icon" ng-if="icon != null">
    <img src="{{icon}}">
</div>

这会生成以下未找到错误:

GET http://localhost/%7B%7Bicon%7D%7D 404 (Not Found)

最佳答案

请改用 ng-src 属性。

<div class="page-icon" ng-if="icon != null">
    <img ng-src="{{icon}}">
</div>

为什么会发生这种情况? 基本上,因为在 Angular 启动之前,浏览器将查看 DOM 并找到 src 值为 {{icon}} 的图像。因此它将尝试从 http://localhost/{{icon}} 加载图像。当然,它什么也找不到。

AngularJs 完成工作后,src 将填充正确的值,并且图像将被加载和呈现。

ng-src 所做的是等待变量 icon 至少有一次值,然后才设置真实属性 src。这意味着只有这样浏览器才知道有要加载的图像,并且它已经具有正确的 URL。

关于javascript - AngularJS ng-if 用于加载图像时生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487821/

相关文章:

javascript - 使用 Canvas 调整叠加图像的大小问题

javascript - 使用 AJAX/javascript(.STL 或 .json)加载 XML3D 模型

javascript - Angularjs:-如何在angularjs中生成阿拉伯语url

javascript - ng-init 不适用于 sails.get ("/..")

angularjs - 如何将 ng-animate 与 ui-view 而不是 ng-view 一起使用?

javascript - 谷歌图表显示法国数字值?

javascript - 谷歌分析答案属性有什么用?

javascript - 无法将数组从php输入到javascript

javascript - 从使用 Angular 的站点上抓取数据时,如何访问元素的 ng-model?

JavaScript 仅通过 messageid 将对象创建为数组