我有一个过滤器,它将生成一个随机值:
function randomize() {
return function (input) {
if (input !== null && input !== undefined && input > 1) {
return Math.floor((Math.random() * input) + 1);
}
};
}
我的 html 中有一个 ng-repeat block :
<tr data-ng-repeat="config in Configs">
<td>
<img src="/images/{{21|randomize}}.png" alt="1">
</td>
<td>
<img src="/images/{{21|randomize}}.png" alt="2">
</td>
从中您可以看到,第二个 td block 中的图片可能与第一个 td block 具有不同的值,因为它正在生成新的随机数。
问题是,如何保留从第一个 td block 生成的随机数并在同一个 ng-repeat 循环中的某个地方(例如第二个 td block )重用它?
我只想将其保留在当前循环中。
是否有办法在不触及 $scope 和 JS 文件的情况下执行此操作?如果没有,最简单的方法是什么?
最佳答案
您可以将过滤器调用的返回值设置为本地范围的变量。例如
<tr data-ng-repeat="config in Configs">
<td>{{rand1 = (21|randomize)}}.png</td>
<td>{{21|randomize}}.png</td>
<td>{{rand1}}</td>
</tr>
Plunker 演示 ~ http://plnkr.co/edit/djnXfH9JOC7wG1yiYIPT?p=preview
关于javascript - AngularJS 在 ng-repeat 循环中保留临时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443594/