programing

각도에서의 특성 변경 구독JS

golfzon 2023. 4. 4. 22:37
반응형

각도에서의 특성 변경 구독JS

녹아웃으로JS 다음과 같은 관측 가능한 뷰 모델 속성의 변경에 가입할 수 있습니다.

myViewModel.personName.subscribe(function(newValue) {
    alert("The person's new name is " + newValue);
});

저는 지금 AngularJS를 배우고 있는데, AngularJS에 이와 동등한 것이 있을까요?이걸 찾아봤지만, 아무 소용이 없어요.

Angular의 스코프 개체JS에는 다음과 같은 특별한 방법이 있습니다.$watch'scoperating scope properties 。

모델의 새로운 값과 오래된 값을 수신하는 콜백을 받아들입니다.

$scope.$watch('modelName', function(newValue, oldValue){
    // Do anything you like here
});

콜백은 초기화 시 및 모델이 변경될 때마다 실행됩니다.따라서 다음과 같이 동등성에 대한 추가 검사를 추가하는 것이 좋습니다.

$scope.$watch('modelName', function(newValue, oldValue){

    // Check if value has changes
    if(newValue === oldValue){
        return;
    }

    // Do anything you like here
});

이를 통해 모델을 '관찰'하고 필요한 경우 몇 가지 작업을 수행할 수 있습니다.

한 가지 덧붙이자면 객체를 포함하는 모델을 보고 있다면 Angular를 나타내는 세 번째 파라미터를 추가로 사용해야 합니다.JS는 다음과 같이 두 값을 기준이 아닌 개체 등식으로 비교합니다(기준이 변경되지 않으므로 워처를 트리거하지 않음).

$scope.$watch('modelName', function(newValue, oldValue){
    // Do anything you like here
}, true); // Add extra 'true' parameter to check for object equality

Angular에서 더 많은 문서를 볼 수 있습니다.JS 스코프 페이지

도움이 됐으면 좋겠네요!

API 호출 및 사용자 액션 또는 응용 프로그램이벤트에 의해 트리거된 비동기 데이터의 경우

$rootScope.$broadcast('updateSearch', value);

서비스 함수의 콜백에 직접 접속하여 컨트롤러에서 이를 활용합니다.

$scope.$on('updateSearch', function(event,value) {
  $scope.search = value;
});

$watch를 사용하여 스코프 객체의 속성이 언제 변경되는지 확인할 수 있습니다.

http://docs.angularjs.org/api/ng.$rootScope.Scope#$watch

언급URL : https://stackoverflow.com/questions/17199995/subscribe-to-property-change-in-angularjs

반응형