programing

어떻게 하면 AngularJS에서 $watching을 멈출 수 있나요?

sourcejob 2023. 3. 10. 21:28
반응형

어떻게 하면 AngularJS에서 $watching을 멈출 수 있나요?

Angular에 $워치를 설정할 수 있습니다.관심있는 식이 변경되었을 때 통지되는 JS 스코프입니다.하지만 흥미를 잃으면 어떻게 시청을 멈출 수 있을까?

전화할 때$watch바인딩된 표현식의 등록을 취소하는 함수가 반환됩니다.

예를 들어 변수를 감시하려면foo한 번만 변경:

var unregister = $scope.$watch('foo', function () {
  // Do something interesting here ...
  unregister();
});

답변이 아닌 추가 코멘트로서, 이것은 이벤트 청취자를 죽이는 것과 같은 원리입니다.

var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
   //Do cool stuff with params, then kill it
   unregister();
};

다른 사람이 알아두면 좋을 것 같아서...

나는 받아들여진 대답이 어떻게 작동하는지 잘 모르겠다!나에게 그것은 전혀 효과가 없었다.

$watch 대신 $watch Collection을 사용하고 있었습니다.그리고 $watch로 변경하려고 하고, 수락한 답변을 적용했지만, 아무 것도 되지 않았습니다!!

나한테 효과가 있었던 건

var watchFoo = $scope.$watch('foo', function () {
  // Do something interesting here ...

    return;
});

시계 등록을 해제하고 시계 사이클을 깨는 중이었습니다.그리고 사이클이 깨진 후에도 잘 작동했습니다.어레이의 변경을 검출할 수 있었습니다.

코드는 다음과 같습니다.

var watchFoo = $scope.$watchCollection('foo', function (newFoo, oldFoo) {
    
     if(condition) {
         // Do something interesting here ...      
          return;
     } else {
         // Do something else here ...
     }
     
    });

납득이 가는 경우는, 인정된 회답을 사용할 수 있습니다.그렇지 않으면 이 회답이 도움이 됩니다.

언급URL : https://stackoverflow.com/questions/15715672/how-do-i-stop-watching-in-angularjs

반응형