최고의 온라인 angularjs 교육을 찾고 계십니까? Todd Motto의 Ultimate Angular를 확인하십시오. 25% 할인 및 지원 Sitepoint에 Code Sitepoint를 사용하십시오!
Angularjs의 및
기능은 기본이지만 때로는 혼란스러운 요소입니다. 그것들을 마스터하는 것은 AngularJS의 내부 작업을 이해하는 데 중요합니다. 이 기사는 일상 AngularJS 개발에서 그들의 역할과 실제 응용 프로그램을 명확하게합니다.
키 테이크 아웃 : $apply()
$digest()
는 AngularJS의 양방향 데이터 바인딩에 중요하며, 뷰와 스코프 모델 사이의 원활한 업데이트를 보장합니다.
는 레벨에서 A 사이클을 시작하여 모든 아동 스코프를 가로 지르고 감시자를 실행합니다. AngularJS는 맥락에서 모델 변경이 발생할 때 자동으로 호출합니다.
$apply()
루프는 여러 번 반복하여 스코프 모델이 변경되는 것을 확인합니다. 추가 변경이 감지되지 않거나 최대 반복 한계 (10)에 도달 할 때까지 계속됩니다.
$digest()
$apply()
: $digest
$rootScope
$apply()
setTimeout()
사이클입니다. 이 사이클은 감시자들을 유발합니다. 감시자가 발사되면 AngularJS는 범위 모델을 평가합니다. 변경이 감지되면 해당 리스너 기능이 실행됩니다. $digest
핸들러 내에서 스코프 모델을 수정하면 Angularjs는 자동으로 를 호출합니다. 이것은주기를 시작하여 모든 감시자를 발사하고 그에 따라보기를 업데이트합니다. 기타 지침/서비스 (예 : , )도 사이클을 트리거합니다그러나 $digest()
를 사용하면 Angularjs는 내에서 함수 호출을 랩핑합니다.
$scope.$apply()
는 두 가지 형태로 제공됩니다. 하나는 인수 (선호)로 함수를 받아들이고 단순히 $rootScope.$digest()
사이클을 시작하는 연락이없는 버전입니다.
매뉴얼 $digest
호출 : ng-click
$scope.$apply()
를 호출해야합니다.
예를 들어 : 가 필요합니다.
$apply()
$digest
가 없으면보기가 업데이트되지 않습니다. 자동으로
를 통해 예외를 처리하기 위해 블록을 사용하므로 $apply()
의 함수 반응 버전이 가장 좋습니다.
$apply()
루프는 반복적으로 실행되어 모델 변경 사항을 확인합니다. 리스너 함수가 모델을 수정하면 루프가 다시 시작되어 이러한 변경 사항을 설명합니다. 이는 더 이상 변경되지 않거나 최대 반복 카운트 (10)에 도달 할 때까지 계속됩니다. 루프 반복을 최소화하기 위해 Idempotent 리스너 기능을 목표로합니다
결론 :
$apply()
이해 및 $apply()
는 효과적인 AngularJS 개발에 필수적입니다. AngularJS의 컨텍스트 외부에서 모델을 변경할 때 수동으로
를 사용하십시오
setTimeout()
(FAQS 섹션은 간결하게 제거되었습니다. 제공된 FAQ는 반복적이고 재 작성 된 텍스트의 본체에서 크게 덮여있었습니다.)
위 내용은 Angular ' s $ apply () 및 $ digest () 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!