각도 감시 사이클 또는 다이제스트 사이클이 완료되면 함수를 호출하는 방법
모든 시계 사이클을 앵글 마감한 후 앵글에서 커스텀 함수를 호출할 수 있는 방법이 있습니까?
필요 컨트롤러 내부에 여러 개의 시계 기능이 있습니다.이제 모든 워치 기능이 angular에 의해 실행된 후에만 함수를 실행하고 싶다.
다이제스트가 완료되면 콜백을 등록하는 방법은 여러 가지가 있습니다.
사용.$$postDigest: $scope.$$postDigest전류 후에 콜백을 기동합니다.$digest사이클이 완료되었습니다.
그러나 이 작업은 다음 다이제스트 사이클 후에 한 번만 실행됩니다.각 다이제스트 사이클 후에 실행되도록 하려면$watch이는 여기에 제시된 코드샘플을 기반으로 합니다.
var hasRegistered = false;
$scope.$watch(function() {
if (hasRegistered) return;
hasRegistered = true;
$scope.$$postDigest(function() {
hasRegistered = false;
fn();
});
});
그$watch다이제스트 사이클 중에 여러 번 트리거될 수 있으므로 플래그를 사용합니다.hasRegistered막다$$postDigest콜백은 여러 번 등록됩니다.주의: $$postDigest는 다른 다이제스트 사이클을 트리거하지 않습니다.그래서 어떤 수정사항이라도?$scope안에서.$$postDigest돔에 반사되지 않습니다. $$즉, 이는 angularjs의 프라이빗 함수이므로 함수가 안정적이지 않고 미래에 변경될 수 있습니다.
사용.$timeout:
$timeout(function(){
console.log("Running after the digest cycle");
},0,false);
현재 다이제스트 사이클이 완료된 후 실행됩니다.참고: 세 번째 인수는 다른 다이제스트 사이클 트리거를 방지하기 위해 false로 설정됩니다.
언급URL : https://stackoverflow.com/questions/29093229/how-to-call-function-when-angular-watch-cycle-or-digest-cycle-is-completed
'programing' 카테고리의 다른 글
| JSON 입력 스트림을 해석하는 방법 (0) | 2023.02.08 |
|---|---|
| 인증된 XMLHttpRequest 후에 브라우저가 인가 헤더를 재사용하지 않는 이유는 무엇입니까? (0) | 2023.02.08 |
| 많은 입력을 데이터베이스화하는 angularjs 방법은 무엇입니까? (0) | 2023.02.08 |
| intellij 아이디어 - 오류: java: 잘못된 소스 릴리스 1.9 (0) | 2023.01.27 |
| phpmyadmin은 사용자를 삭제할 수 없습니다. (0) | 2023.01.27 |