2013-11-15 1 views

답변

5

는 각도는 ng-hide 기능에 시계를 넣습니다.

$digest에서 관찰 된 함수가 평가 될 때 이전의 $digest에서 변경된 함수가있는 경우 Angular는 다른 감시 함수에 변경이 적용될 수 있음을 알고 있습니다 (변경된 변수가 다른 감시 함수에서 사용 된 것일 수 있음). 따라서 모든 시계가 변경 될 때까지 모든 시계가 재평가됩니다 (더티 처리라고도 함). 따라서 일반적으로 다이제스트 당 감시 함수를 2 회 호출하고 때로는 더 많이 호출합니다 (최대 10 회까지 10 회까지 루프를 포기하고 안정화 할 수 없다는 오류를보고합니다).

여기 더에 watchdigest입니다 :.

http://docs.angularjs.org/api/ng $ rootScope.Scope

http://www.benlesh.com/2013/08/angularjs-watch-digest-and-apply-oh-my.html

+0

감사합니다. 시간을 단축 할 수있는 방법이 있는지 궁금합니다. 한 번만 함수를 실행할 수 있습니까? –

+0

'ng-hide'내에 없습니다. Angular는이 메커니즘을 필요로하므로 조건 변경 결과에 따라 요소의 가시성을 변경할 수 있습니다. 적은 통화로 당신의 동기는 무엇입니까? – KayakDave

-1

ng-hide 내부적으로 $watch을 사용하는 지시어 중 하나입니다. $watch은 다이제스트주기 (값이 변경되었는지 여부를 확인하기 위해 적어도 2 번 실행 됨)를 사용하므로 함수 isSpecificPage이 두 번 실행되었습니다.

내부적으로 $watch을 사용하는 명령어 목록은이 stackoverflow 응답 directives that add watch internally을 참조하십시오.

관련 문제