我觉得这很简单
<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);
};
答案 0 :(得分:1)
这是一种与Angular $digest
周期相关的正常行为。
这个循环可以被认为是一个循环,在此过程中Angular会检查是否 所有范围观察的所有变量都有任何变化。 因此,如果您在控制器中定义了
$scope.myVar
,那么 变量被标记为被观看,然后你明确告诉 Angular用于监视循环每次迭代中myVar
的更改。 Source
如果可以仅使用::
在Angular中绑定变量一次。请参阅this answer。