map/reduce 함수 나 깊게 중첩 된 접근 자처럼 다이제스트주기 당 데이터를 캐시해야하는 경우가 자주 있습니다. 이를 위해 다이제스트 루프 전후에 캐시 된 값을 지우려면 다이제스트 콜백을 설정하는 것이 좋습니다. 이것을 달성하기위한 "각 방향"이 있습니까?AngularJS 다이제스트 콜백
답변
$rootScope.$watch
으로 할 수있는 한 가지는 "리스너"가없는 함수입니다 (아무 것도 반환하지 않는 함수 하나만 사용하십시오). 이렇게하면 다이제스트가 발생할 때 제공된 함수를 통해 효과적으로 알릴 수 있습니다.
$rootScope.$watch(function() {
// a digest is happening.
});
주기마다이 수신기는 두 번 호출되지만 해킹없이 시작 또는 종료하는지 여부를 알 수 없습니다. 그래서 플래그를 사용하여 우리가 어떤 상태에 있는지 추적 할 수 있으며, 다이제스트가 소화되지 않은 상태로 전환 할 때 캐시를 지울 수 있습니다. In this example, 나는 단지 $cacheFactory
을 사용하여 캐시를 생성하는 서비스를 만들지 만 그 상태를 추적하고 적절한 시간에이를 지 웁니다.
내 생기있는보기에서 그럴듯 해 보입니다. 그러나 방망이에서 벗어나 다이제스트 캐시가 조기에 삭제 될 수있는 문제가 발생합니다. 예를 들어, watch
명령문이 의 이후에 지워지는 예제의 콘솔 메시지에서이를 확인할 수 있습니다. 이는 내 서비스에 추가 된 시계가 마지막에 오도록 시계의 순서를 제어 할 수 없기 때문입니다.
그러나 소스를 $rootScope
으로 보면 문서화되지 않은 내부 함수 $$postDigest
이 표시됩니다.이 함수는 다이제스트가 완료 될 때 처리되는 대기열에 일부 기능을 추가합니다. 따라서 동일한 기술을 사용할 수 있지만 this example에서 볼 수 있듯이 $$postDigest
을 사용하여 정리를 연기 할 수 있습니다. 작동하지만 얇은 얼음을 내부 API로 재생합니다. 스스로 위험을 감수하십시오.
- 1. Firebase 콜백 및 AngularJS
- 2. Angularjs : 컨트롤러 API 콜백
- 3. AngularJS : $ http 성공 콜백
- 4. AngularJS - 애니메이션 콜백/시퀀스
- 5. Angularjs 필터 콜백
- 6. AngularJS 콜백 함수 구현
- 7. angularjs ng-repeat 콜백 함수
- 8. AngularJS $ routeChangeSuccess 콜백 매개 변수
- 9. AngularJS 1.5의 타사 비동기 콜백
- 10. 콜백 함수가 오류를 발생시킵니다. - angularjs
- 11. 로드 템플릿 콜백 후 AngularJS
- 12. 무한 다이제스트 오류 추적
- 13. 지시문에서 $ compile을 사용하면 AngularJS 무한 다이제스트 오류가 발생합니다.
- 14. angularjs $ watch watch promp가 무한 다이제스트 루프에 들어가고 있습니다.
- 15. AngularJS : 여러 개의 $ scope에서 '진행중인 다이제스트 중'오류가 발생합니까? $ apply() calls?
- 16. 지시문 템플릿 및 신뢰할 수있는 리소스가있는 AngularJS 다이제스트 사이클 제한
- 17. 캐시 다이제스트 애셋에 연결하는 비 다이제스트 .js
- 18. $ window.history.back()에 대한 AngularJS - 성공 콜백
- 19. AngularJs + Sqlite - sqlite 콜백 함수에서 변수 채우기
- 20. angularJS 요소입니다. 콜백 및 범위 $ apply
- 21. Javascript/AngularJS - 콜백 실행 완료 대기
- 22. AngularJS, $ http, 성공 콜백 범위 가시성
- 23. AngularJS 약속과 함께 호출되는 리소스 오류 콜백
- 24. 리소스 콜백 에러 콜백
- 25. Email 다이제스트 레일 애플리케이션
- 26. SHA-1 다이제스트 감소
- 27. Zombie.js로 다이제스트 인증
- 28. 다이제스트 확인에 실패했습니다.
- 29. 다이제스트 인증 WP 8.1
- 30. 각도가 무한한 다이제스트 문제