Angularjs 전역 변수가scope_AngularJS에 의해 모니터링되는 올바른 방법
결론만 알고 싶다면
$scope.$watch($rootScope.xxx,function(newVal,oldVal){ //do something })
누군가 즉시 왜 안 되는지 물었습니다.
$rootScope.$watch("xxx",function(newVal,oldVal){ //do something })
최근 발생한 버그 중 첫 번째 방법을 사용해야 하는 이유를 알려드리겠습니다.
논리는 그림과 같습니다. 처음에는 $rootScope.$watch라는 작성 방법을 사용했습니다. $rootScope에 대한Angularjs의 감시는 일단 등록되면 전역적으로 유효하기 때문입니다. 그리고 내 전역 변수는 주문 정보입니다. 즉, 서로 다른 컨트롤러에 변경 사항이 있고 모든 변경 사항이 $rootScope.$watch를 트리거하여 다른 컨트롤러로 들어가게 됩니다. 비유하자면 $rootScope의 $broadcast는 전역적으로 시작됩니다.
사실 이 방법만이 유일한 것은 아닙니다. 다음 코드를 포함해 Angular 소스코드를 확인해보면 watch 메소드 소스코드를 찾는 것은 어렵지 않습니다.
return function deregisterWatch() { if (arrayRemove(array, watcher) >= 0) { incrementWatchersCount(scope, -1); } lastDirtyWatch = null; };
이 코드는 수동으로 시계를 청소하는 것이 가능함을 알려줍니다. 예:
var watcher = $rootScope.$watch("xxx",function(){}); //手动清除 watcher watcher();
아직도 매우 간단합니다. 위의 방법은 스코프 시계에도 사용할 수 있습니다.
이 점을 조사했을 때 문제가 있다고 느꼈습니다. 내 $scope가 지워지나요? 그래서 소스코드를 계속 살펴보니 $destroy 메소드에서 다음 코드를 발견했습니다.
// Disable listeners, watchers and apply/digest methods this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop; this.$on = this.$watch = this.$watchGroup = function() { return noop; }; this.$$listeners = {};
위 코드는 이 글에서 소개한 범위로 모니터링할 Angularjs 전역 변수의 올바른 자세입니다. 이 글이 잘 작성되지 않은 경우 조언을 부탁드립니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 스크립트의 성능을 크게 향상시키기위한 10 가지 간단한 단계를 간략하게 설명합니다. 이러한 기술은 간단하고 모든 기술 수준에 적용 할 수 있습니다. 계속 업데이트 : Vite와 같은 번들과 함께 NPM과 같은 패키지 관리자를 활용하여

이 기사에서는 jQuery 라이브러리를 사용하여 간단한 사진 회전 목마를 만들도록 안내합니다. jQuery를 기반으로 구축 된 BXSLIDER 라이브러리를 사용하고 회전 목마를 설정하기위한 많은 구성 옵션을 제공합니다. 요즘 그림 회전 목마는 웹 사이트에서 필수 기능이되었습니다. 한 사진은 천 단어보다 낫습니다! 그림 회전 목마를 사용하기로 결정한 후 다음 질문은 그것을 만드는 방법입니다. 먼저 고품질 고해상도 사진을 수집해야합니다. 다음으로 HTML과 일부 JavaScript 코드를 사용하여 사진 회전 목마를 만들어야합니다. 웹에는 다양한 방식으로 회전 목마를 만드는 데 도움이되는 라이브러리가 많이 있습니다. 오픈 소스 BXSLIDER 라이브러리를 사용할 것입니다. BXSLIDER 라이브러리는 반응 형 디자인을 지원 하므로이 라이브러리로 제작 된 회전 목마는

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

속편은 약속 기반 Node.js ORM입니다. PostgreSQL, MySQL, MariaDB, Sqlite 및 MSSQL과 함께 사용할 수 있습니다. 이 튜토리얼에서는 웹 앱 사용자를위한 인증을 구현할 것입니다. 그리고 우리는 인기 인증 중간 인 여권을 사용할 것입니다
