변경에 대한 AngularJS $watch 루트 범위 변수
다음 $rootScope 변수를 사용하여 현재 로그인한 사용자 권한 수준을 저장한 후 다른 컨트롤러에서 이 변수에 액세스합니다.rootScope 변수의 변경을 감시하고 rootscope 변수를 변경하여 컨트롤러 고유의 변수를 갱신할 수 있는 방법이 있습니까?아래는 제가 사용하고 있는 코드입니다만, 제가 무엇을 잘못하고 있는지, 어떻게 고쳐야 하는지 가르쳐 주실 수 있습니까?감사해요.
.run 아래의 app.js:
$rootScope.uPLevel = 0;
컨트롤러
$scope.$watch($rootScope.uPLevel, function() {
$scope.userPLevel = $rootScope.uPLevel;
}, true);
첫 번째 파라미터는$watch
문자열 또는 함수(필수) 중 하나여야 합니다.지금 당신은 그 가치를 전달하고 있다.$rootScope.uPLevel
컨트롤러 초기화 시.
$scope.$watch(function() {
return $rootScope.uPLevel;
}, function() {
$scope.userPLevel = $rootScope.uPLevel;
}, true);
2개의 사이드:
- 이 값을 서비스에 저장하는 것이 현명할 수 있습니다.
$rootScope
. - 한다면
uPLevel
(예에서 알 수 있듯이) 정수일 뿐이므로 패스할 필요가 없습니다.true
세 번째 파라미터로 지정합니다.이것은 어레이와 오브젝트 전용입니다.만약 당신이 컬렉션을 보고 싶다면, 나는 그것을 사용하는 것을 추천한다.$watchCollection
대신.
다음과 같은 $rootScope 변수를 볼 것을 권장합니다.
$scope.$watch('$root.uPLevel', function() {
$scope.userPLevel = $rootScope.uPLevel;
});
이렇게 하면 현재 지시/컨트롤러가 파괴됩니다.시계도 클리어 됩니다.$rootScope 단위입니다.rootScope).$watch case, 시계는 영원히 남습니다.
언급URL : https://stackoverflow.com/questions/22738482/angularjs-watch-root-scope-variable-for-changes
'programing' 카테고리의 다른 글
Wait는 비동기 함수 내부의 예약된 단어 오류입니다. (0) | 2023.03.21 |
---|---|
반응 성분에서 특정 유형의 아이만 허용 (0) | 2023.03.21 |
Jquery asp.net 버튼클릭 이벤트 via ajax (0) | 2023.03.21 |
Html 요소 없이 AngularJs ng-repeat (0) | 2023.03.21 |
연결 정보 wordpress - localhost 설치 (0) | 2023.03.21 |