English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
1. 시작 단계
브라우저가 HTML 페이지를 해석하면, angular.js의 <script> 태그를 읽은 후 다음 DOM 노드를 해석하는 것을 중단하고, 동시에 Angular이 DOMContentLoaded 이벤트를 감지하는 이벤트 리스너를 설정합니다. Angular이 이 이벤트를 감지하면 Angular이 시작됩니다.
2. 초기화 단계
Angular이 시작되면, ng를 찾습니다.-app 명령어를 입력한 후, 필요한 구성 요소(즉 $injector, $compile 서비스 및 $rootScope)를 초기화한 다음, DOM을 계속 분석합니다.
3. 컴파일, 링크 단계
1.Angular은 $compile 서비스를 통해 DOM 트리를 탐색하여 지시를 가진 DOM 요소를 찾아, 지시의 우선순위에 따라 찾은 지시를 정렬합니다.
2.이후 $injector 서비스를 사용하여 각 지시 아래의 compile 함수를 찾고 수집하여 실행합니다.
3.각 노드의 compile 메서드가 실행된 후, $compile 서비스는 바인딩된 닫힌 스코프의 지시에 대한 모니터링을 설정하는 바인딩 함수를 호출합니다. 이 작업은 실시간 뷰를 생성합니다.
4.위의 모든 작업이 완료되면, Angular이 완료됩니다.
4. 실행 단계
Angular은 자신의 이벤트 루프를 제공합니다. 지시는 자신이 이벤트 리스너를 등록하므로, 이벤트가 트리거될 때, 지시 함수는 AngularJS의 $digest 루프에서 실행됩니다. $digest 루프는 $watch 표현식 목록을 기다리며, 모델 변화가 감지되면 $watch 함수를 호출하고, 다시 $watch 목록을 확인하여 모델이 변경되지 않았는지 확인합니다. $digest 루프가 안정되고, 잠재적인 변화가 없음을 감지하면, 실행 프로세스는 Angular 컨텍스트를 벗어나 대부분 브라우저로 돌아갑니다.
이것이 본문의 전체 내용입니다. 본문의 내용이 여러분의 학습이나 업무에 도움이 되길 바랍니다. 또한, 나아가呐喊 교육을 많이 지지해 주시기를 바랍니다!
선언: 본문 내용은 인터넷에서 가져왔으며, 저작권자는 본인이며, 인터넷 사용자가 자발적으로 기여하고 자체로 업로드한 내용입니다. 이 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해 내용이 있음을 발견하시면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 이메일을 보내시면, #을 @으로 변경하여 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 이 사이트는 즉시 저작권 침해 내용을 삭제할 것입니다.