2017-05-03 1 views
0

나는이 매우 간단한 번에 여러 번 실행되는 반복?

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

을 가지고 그리고 그것은 504 개 요소 배열을 반환합니다. 나는 그것이

(2) 504 
(2) 504 
504 

그래서 대신

한 번만 실행 말한다 console.log()

, 그것은 다섯 번을 실행?

이에 대한 나의 자바 스크립트는이 각도 $digest주기에 관련된 정상적인 동작, 단순히

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

답변

1

입니다.

이주기는 모든 범위에서 감시되는 모든 변수에 대한 변경 사항이있는 경우 각도 검사가 수행되는 동안 루프로 간주 될 수 있습니다. 컨트롤러에 $scope.myVar이 정의되어 있고이 변수가 감시 대상으로 표시 되었다면 루프의 각 반복에서 myVar의 변경 사항을 모니터링하기 위해 각도를 명시 적으로 말하고 있습니다. Source

::을 사용하여 변수를 한 번만 각도로 바인딩 할 수 있다면 가능합니다. this answer을 참조하십시오.

관련 문제