ng-repeat一次运行多次?

时间:2017-05-03 07:15:06

标签: javascript angularjs angularjs-ng-repeat

我觉得这很简单

<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);
};

1 个答案:

答案 0 :(得分:1)

这是一种与Angular $digest周期相关的正常行为。

  

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

如果可以仅使用::在Angular中绑定变量一次。请参阅this answer