我正在循环浏览一个事物列表,如果一个事物有一个图像,我想显示它。
但如果一个东西没有图像,我想显示默认文本:
<div ng-repeat="myThing in myThings>
<div ng-switch on="{{myThing.img}}" >
<span ng-switch-when="{{myThing.img}}">
<img src="/img/myThings/{{myThing.id}}" />
</span>
<span ng-switch-default>No Image</span>
</div>
</div>
这样可以工作,并显示默认文本。
然而,浏览器在试图获取不存在的图像时也抛出了一个错误:
http://localhost:9000/img/myThings/%7B%7BmyThing.id%7D%7D 404 (Not Found)
有没有一种方法可以格式化这个ng开关函数,这样就不会引发这个错误?
使用ng src而不是src
,这来自文档:
在src属性中使用像{{hash}}这样的Angular标记无法正常工作:浏览器将从URL中提取文本{{hash}},直到Angular替换{{hash}}}中的表达式。ngSrc指令解决了这个问题。
<img ng-src="/img/myThings/{{myThing.id}}" />