2017-05-03 61 views
0

我得到這個很簡單一次運行多次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

這是一種正常的行爲,涉及到角$digest週期。

這個循環可以看作是一個循環,在這個循環中,角度檢查是否所有變量監視的變量都有變化 。 因此,如果您在控制器中定義了$scope.myVar,並且此 變量被標記爲需要監視,那麼您明確告訴 Angular在循環的每次迭代中監視myVar上的更改。 Source

如果可能僅在Angular中綁定變量一次,則使用::。見this answer