참고(구글번역)
– Understanding $watch(), $watchgroup() and $watchCollection() methods of scope
(http://www.dotnettricks.com/learn/angularjs/understanding-watch-watchgroup-and-watchcollection-methods-of-scope)
■ $watchGroup은 AngularJS 1.3에서 도입되었습니다. 첫번째 매개 변수가 관찰할 표현식의 배열이라는 점을 제외하면 $watch와 동일합니다.
$watchGroup(watchExpression, listener)
■ $watchGroup
리스너는 감시 된 변수에 대한 새 값과 이전 값이 있는 배열로 전달됩니다. 리스너는 watchExpressions 배열의 표현식이 변경 될 때마다 호출됩니다.
<script> $scope.teamScore = 0; $scope.time = 0; $scope.$watchGroup(['teamScore', 'time'], function(newVal, oldVal) { if(newVal[0] > 20){ $scope.matchStatus = 'win'; } else if (newVal[1] > 60){ $scope.matchStatus = 'times up'; }); </script>
■ $watchGroup 예제
<!DOCTYPE html> <html ng-app="myApp"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8"> <head> <title></title> <script src="/js/angularjs/1.5.6/angular.js"></script> <script src='/js/jquery/jquery-1.11.0.min.js'></script> <script> var myApp = angular.module("myApp",[]); myApp.controller("myAppCtrl", function($scope){ $scope.teamScore = 0; $scope.time = 0; $scope.changeTeamScore = function() { $scope.teamScore = $scope.teamScore + 1; } $scope.changeTime = function() { $scope.time = $scope.time + 1; } $scope.$watchGroup(['teamScore','time'], function(newVal, oldVal) { console.log( "new teamScore : " + newVal[0] + "\told teamScore : " + oldVal[0] ); console.log( "new time : " + newVal[1] + "\told time : " + oldVal[1] ); $("#log").text( "teamScore : " + $scope.teamScore + "\ttime : " + $scope.time); }); }); </script> </head> <body ng-controller="myAppCtrl"> <h1> AngularJS $watchGroup<br/> <font color="red"></font> </h1> <button ng-click="changeTeamScore()">$watchGroup 테스트(teamScore+1)</button> <button ng-click="changeTime()">$watchGroup 테스트(time+1)</button> <hr/> <div id="log"></div> </body> </html>
■ $watch 예제 실행 결과
- AngularJS angular.copy 사용법, angular 복사 2019년 5월 17일
- AngularJS fromJson, toJson 사용법 2019년 5월 15일
- AngularJS에서 ng-style사용시 조건문 이용방법 2019년 4월 25일
- AngularJS에서 ng-style사용시 함수 이용방법 2019년 4월 23일
- AngularJS 동적 HTML, Function 추가 2019년 4월 15일
- AngularJS에서 팝업창 띄우기 2019년 4월 2일
- AngularJS 하나의 모듈에 factory 다중 등록 2018년 2월 26일
- AngularJS factory 예제 2018년 2월 26일
- AngularJS forEach ng-repeat 예제 2018년 2월 19일
- AngularJS $http, spring TEXT response 예제 2018년 1월 17일
- AngularJS selectbox 간단한 예제 2018년 1월 15일
- AnuglarJS forEach 예제 2018년 1월 12일
- AngularJS checkbox 제어 및 활성/비활성(ng-disabled) 예제 2018년 1월 8일
- AngularJS button 활성/비활성(ng-disabled) 예제 2018년 1월 8일
- AngularJS radio 활성/비활성(ng-disabled) 예제 2018년 1월 8일
- AngularJS $broadcast, $emit, $on 예제 2018년 1월 3일
- AngularJS – $watch $digest $apply Life Cycle 2017년 12월 26일
- AngularJS $watchCollection 2017년 12월 26일
- AngularJS $watchGroup 2017년 12월 26일
- AngularJS $watch 2017년 12월 26일
- AngularJS 반복문 ng-repeat 2017년 7월 22일
- AngularJS $timeout 2017년 7월 22일
- AngularJS Show/Hide, 보이기/숨기기 2017년 7월 16일
- AngularJS 라디오 버튼 제어 2017년 7월 16일
- AngularJS시작하기, Hello AngularJS 2017년 7월 15일