> 웹 프론트엔드 > JS 튜토리얼 > Angular ' s $ apply () 및 $ digest () 이해

Angular ' s $ apply () 및 $ digest () 이해

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-21 11:45:08
원래의
777명이 탐색했습니다.

Understanding Angular's $apply() and $digest() 최고의 온라인 angularjs 교육을 찾고 계십니까? Todd Motto의 Ultimate Angular를 확인하십시오. 25% 할인 및 지원 Sitepoint에 Code Sitepoint를 사용하십시오! Angularjs의 및

기능은 기본이지만 때로는 혼란스러운 요소입니다. 그것들을 마스터하는 것은 AngularJS의 내부 작업을 이해하는 데 중요합니다. 이 기사는 일상 AngularJS 개발에서 그들의 역할과 실제 응용 프로그램을 명확하게합니다.

키 테이크 아웃 :

$apply() $digest()

는 AngularJS의 양방향 데이터 바인딩에 중요하며, 뷰와 스코프 모델 사이의 원활한 업데이트를 보장합니다. 는 레벨에서 A 사이클을 시작하여 모든 아동 스코프를 가로 지르고 감시자를 실행합니다. AngularJS는 맥락에서 모델 변경이 발생할 때 자동으로 호출합니다.

의 수동 호출은 angularjs의 컨텍스트 외부에서 모델 수정이 발생할 때 필요합니다 (예 :
    또는 dom 이벤트 리스너 사용). 이 신호는 angularjs를 신호로, 감시자를 업데이트하고 변경 사항을 올바르게 전파합니다.
  • $apply() 루프는 여러 번 반복하여 스코프 모델이 변경되는 것을 확인합니다. 추가 변경이 감지되지 않거나 최대 반복 한계 (10)에 도달 할 때까지 계속됩니다. $digest()
  • 깊은 다이빙 및 $apply() : $digest AngularJS의 양방향 데이터 바인딩은 강력한 기능입니다. 뷰의 변경 사항은 스코프 모델을 자동으로 업데이트하고 그 반대도 마찬가지입니다. 이 마법은 AngularJS가 스코프 모델에서 감시자를 설정하기 때문에 발생합니다. 이 감시자들은 커스텀 워커와 비슷합니다 $rootScope 변경 될 때마다 청취자 함수를 실행하십시오. 중요한 질문은 다음과 같습니다.
  • angularjs가 이러한 청취자 함수를 언제 부를 때를 아는가? $apply() 답은 setTimeout() 사이클입니다. 이 사이클은 감시자들을 유발합니다. 감시자가 발사되면 AngularJS는 범위 모델을 평가합니다. 변경이 감지되면 해당 리스너 기능이 실행됩니다.
  • 주기는 에 의해 시작됩니다. 예를 들어, $digest 핸들러 내에서 스코프 모델을 수정하면 Angularjs는 자동으로 를 호출합니다. 이것은주기를 시작하여 모든 감시자를 발사하고 그에 따라보기를 업데이트합니다. 기타 지침/서비스 (예 : , )도 사이클을 트리거합니다그러나 그러나 AngularJS는 를 직접 호출하지 않습니다. 대신 를 사용하여 를 호출합니다. 이것은 사이클이 뿌리에서 시작되고 어린이 스코프를 통해 전파되도록합니다. 함수와 함께 $digest()를 사용하면 Angularjs는 내에서 함수 호출을 랩핑합니다. $scope.$apply() 는 두 가지 형태로 제공됩니다. 하나는 인수 (선호)로 함수를 받아들이고 단순히 $rootScope.$digest() 사이클을 시작하는 연락이없는 버전입니다. 매뉴얼 $digest 호출 : ng-click 매뉴얼은 언제 필요합니까? Angularjs는 의 컨텍스트 (즉, 에 랩핑 된 코드) 내에서 만든 모델 변경에 대해서만 설명합니다. 내장 지시문은이를 자동으로 처리합니다. 그러나 AngularJS의 컨텍스트 외부에서 모델을 수정하면 angularjs에 변경 사항을 알리려면 수동으로 $scope.$apply()를 호출해야합니다. 예를 들어 스코프 모델을 업데이트하기 위해 를 사용하면 설명서

    : 가 필요합니다. $apply() $digest 가 없으면보기가 업데이트되지 않습니다. 자동으로

    를 처리하므로이를 선호합니다.

    를 통해 예외를 처리하기 위해 블록을 사용하므로 $apply()의 함수 반응 버전이 가장 좋습니다.

    루프 반복 :

    $apply() 루프는 반복적으로 실행되어 모델 변경 사항을 확인합니다. 리스너 함수가 모델을 수정하면 루프가 다시 시작되어 이러한 변경 사항을 설명합니다. 이는 더 이상 변경되지 않거나 최대 반복 카운트 (10)에 도달 할 때까지 계속됩니다. 루프 반복을 최소화하기 위해 Idempotent 리스너 기능을 목표로합니다 결론 : $apply() 이해 및 $apply()는 효과적인 AngularJS 개발에 필수적입니다. AngularJS의 컨텍스트 외부에서 모델을 변경할 때 수동으로 를 호출하십시오. 가능할 때마다 수동

    호출을 피하기 위해

    를 사용하십시오 setTimeout() (FAQS 섹션은 간결하게 제거되었습니다. 제공된 FAQ는 반복적이고 재 작성 된 텍스트의 본체에서 크게 덮여있었습니다.)

위 내용은 Angular ' s $ apply () 및 $ digest () 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿