没有物品的中继器中的角加载 img src
Angular loading img src in repeater without items
我有一个角度中继器(表),其中包括一个src元素。但是,在加载项目之前第一次调用我的 URL,导致如下所示的 404 加载:
http://localhost:9000/%7B%7Bitem.obj.thumbnailurl%7D%7D 404 (Not Found)
该表如下所示(简化):
<table>
<thead>
<tr>
<th>Item title</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items">
<td>{{item.obj.itemtitle}}</td>
<td>
<a href="{{item.obj.landingpageurl}}">
<img src="{{item.obj.thumbnailurl}}"/>
</a>
</td>
</tr>
</thead>
</table>
作为搜索的结果,稍后将加载 items 数组。
每次打开此视图(即使没有重新加载页面,只是打开其他视图)时,都会收到 404 错误。
为什么会这样?我怎样才能避免它?
正如CodeHater所建议的那样,使用ng-src
将解决此问题。问题在于,在 angular 编译ng-repeat
及其内容之前,浏览器{{item.obj.thumbnailurl}}
解释为真正的src
属性。这也是为什么即使img
标签在ng-repeat
内,您也只收到一个此类错误的原因。当使用 ng-src
时,angular 会在编译ng-repeat
及其内容的那一刻在 DOM 中插入正确的 src
属性。
问题是浏览器在解析标签时立即加载图像,这是在 angular 有机会用动态值替换它之前。尝试ng-src来解决这个问题。这同样适用于href
,为了避免用户在 Angular 有机会用其值替换 {{hash}} 标记之前单击它,请尝试 ng-href
正如这里的人所提到的,ng-src
解决了这个问题。无论如何,如果要动态更改图像源,请确保定义默认值以获得更好的UX,以便在代码定义真实图像之前显示一些加载器图像。
相关文章:
- 如何在页面加载中使用Jquery/Javascript确定img源
- 预加载标签IMG而不指定图像的名称
- 在页面加载时激活jQuery img和文本操作
- 如果有办法在 N 秒内加载未触发,则有没有办法设置 img src
- 如何重新加载<img/>
- 如何在加载img后强制脚本工作
- 在3个输入文件中加载img
- 延迟加载引导传送带而不更改 img src 属性
- 没有物品的中继器中的角加载 img src
- 获取输入 IMG 类型的选定图片并加载到图像标签中
- JS/JQuery 重试 1 秒后 img 加载
- jQuery 重新排列/交换 img src 会导致照片重新加载出现故障
- 旋转 img 标记中的图像 URL 以预加载所有图像 URL
- IMG 未使用 AJAX 调用加载图像
- 图像加载不适用于 img 和 Blob
- HTML Img 标签使用 Javascript 重新加载
- 如何绑定 img 的加载事件
- Http:403禁止错误时,试图加载img SRC与谷歌个人资料的图片
- jQuery加载img,同时执行Python脚本PHP
- 如何使用表单提交以通过帖子加载 img 标签