javascript - AngularJS 在 ng-repeat 循环中保留临时值

标签 javascript html angularjs

我有一个过滤器,它将生成一个随机值:

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/

相关文章:

html - 无法访问顶级目录,想要停止某些机器人

angularjs - 我的 angularjs 工厂出了什么问题?

javascript - UI Router Params 值在目标中未定义

javascript - 对于 Stripe 连接帐户,account.updated webhook 对象的哪一部分表明该帐户已启用?

javascript - 数据库或数组

html - 无法通过马提尼框架访问静态网页 index.html

javascript - 如何预加载 Angular 路由并仅在成功加载路由时切换?

javascript - 尝试在 Discord 机器人中发送随机消息 (javascript)

javascript - 检测并替换 Markdown 文档中的文本段落

html - div 外的内容溢出