【问题标题】:ng-repeat running multiple times in one go? [duplicate]ng-repeat 一次运行多次? [复制]
【发布时间】:2017-05-03 07:15:06
【问题描述】:

这很简单

<table>
    <tr>
        <td ng-repeat="c in schedIdTableCtrl.calculateNumberOfColumns() track by $index">{{schedIdTableCtrl.calculateTime($index)}}</td>
    </tr>
</table>

它返回一个包含 504 个元素的数组。

但是当我console.log() 它说

(2) 504
(2) 504
504

所以不是只运行一次,而是运行五次?

我的 javascript 很简单

ctrl.calculateNumberOfColumns = () => {
    let columns = length / interval;
    console.log(columns);
    return new Array(columns);
};

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat


    【解决方案1】:

    这是正常行为,与 Angular $digest 循环有关。

    这个循环可以被认为是一个循环,在这个循环中 Angular 检查是否 所有范围监视的所有变量都有任何更改。 因此,如果您在控制器中定义了 $scope.myVar 并且此 变量被标记为被监视,那么你明确告诉 Angular 在循环的每次迭代中监控 myVar 的变化。 Source

    如果只能在 Angular 中绑定一次变量,请使用 ::。见this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 2016-05-24
      • 2019-08-01
      • 1970-01-01
      相关资源
      最近更新 更多