programing

AngularJS로 여러 필드의 시청을 하나의 시계로 통합할 수 있습니까?

stoneblock 2023. 10. 6. 20:51

AngularJS로 여러 필드의 시청을 하나의 시계로 통합할 수 있습니까?

Angular에 방법이 있습니까?JS는 이것을 하나의 $watch에 통합하기 위해 필요합니까? 아니면 제가 보는 것마다 $watch가 필요합니까?

    $scope.$watch('option.selectedContentType', function () {
        $scope.getData();
    });

    $scope.$watch('option.selectedContentStatus', function () {
        $scope.getData();
    });

$watchCollection을 사용하는 방법에 대한 몇 가지 변형 사항을 아래에서 확인할 수 있습니다.

http://jsbin.com/IYofiPi/4 - 여기 작동 예시.

console.log를 확인하여 이벤트가 실행되는지 확인합니다.

배열의 항목 보기

$scope.cities = ['Salvador', 'London', 'Zurich', 'Rio de Janeiro']; //Array

$scope.$watchCollection('cities', function(newValues, oldValues) {
  console.log('*** Watched has been fired. ***');
  console.log('New Names :', newValues);
});

객체의 속성 보기

$scope.city = {
  name: 'London',
  country: 'England',
  population: 8.174
}

$scope.$watchCollection('city', function(newValues, oldValues) {
  console.log('*** Watched has been fired. ***');
  console.log('New Names :', newValues);
});

범위 변수($scope) 목록 보기.첫번째 행성, $scope.제2행성)

$scope.firstPlanet = 'Earth';
$scope.secondPlanet = 'Mars';

$scope.$watchCollection('[firstPlanet, secondPlanet]', function(newValues){
  console.log('*** Watched has been fired. ***');
  console.log('New Planets :', newValues[0], newValues[1]);
});

AngularJS 1.3부터는 $watchGroup이라는 새로운 방법으로 표현식을 관찰할 수 있습니다.

angular 1.1.4를 사용하는 경우 $watchCollection을 사용할 수 있습니다. 여기 설명서의 샘플 코드에서 나온 코드 조각이 있습니다.

$scope.names = ['igor', 'matias', 'misko', 'james'];

$scope.$watchCollection('names', function(newNames, oldNames) {
  $scope.dataCount = newNames.length;
});

언급URL : https://stackoverflow.com/questions/17872919/can-i-combine-watching-of-multiple-fields-into-one-watch-with-angularjs