我想通过ng-repeat显示一个数组。但是我在div(带有ng-repeat)里面有很多其他的元素,我想在ng-repeat的每次迭代中操作它们。例如:
<div ng-repeat="data in result">
{{data.name}}
<img src="value">
<p class="class">text</p>
</div>
如果我想为阵列的每个元素使用不同的源更改图像源,我该怎么做?我无法改变结果数组的任何内容。我想稍后更改它,例如用户在底部clic。
丹尼尔
编辑:
img标签只是一个例子。我添加了其他可能需要更改类的元素。因此每次迭代都有不同的类。
答案 0 :(得分:2)
要更改图像来源,请使用ng-src
,如:
<div ng-repeat="data in result">
{{data.name}} <img ng-src="{{data.imageUrl}}">
</div>
在此我假设您在每个名为imageUrl
的数据项上都有一个属性。
要更改值,只需为imageUrl
属性指定一个新值,而角度的双向绑定将执行其余操作。一个例子是:
<button ng-click="result[0].imageUrl = 'img/new-image.jpg';">Change Image</button>
当然,你需要确保你有正确的索引,并且结果数组中至少有一个元素,但是应该这样做!
直播示例
要查看此操作,请查看以下plunker:http://plnkr.co/edit/gYLH7Z4b03lS2gZBHceC?p=preview
修改强>
根据问题的编辑 - 如果您需要更改班级,请使用ng-class
。实际上,已经有一个指令已经针对您需要更改的大多数常见事项编写。始终首先搜索角度文档:angularjs.org。如果您确实需要做一些尚未编写的更高级的内容,请阅读文档并创建自己的指令:https://docs.angularjs.org/guide/directive。祝你好运!
答案 1 :(得分:1)
使用ng-src
代替src
进行字符串插值。请参阅https://docs.angularjs.org/api/ng/directive/ngSrc。