ng-change 디렉티브를 사용하여 이벤트를 발생시키려 하였으나 동작이 되지 않는 경우가 있을 수 있습니다. 이 경우 어떻게해야할까요?


ng-change가 동작하지 않는 원인부터 확인이 필요합니다. 만약 아래의 경우라면 정상 동작하지 않을 수 있습니다.

1. 해당하는 엘리먼트가 input 등의 입력폼이 아닌 경우
2. 변경되는 값이 엘리먼트 자체의 value 값이 아닌 경우
3. 써드파티에 의하여 값을 변경 시키는 경우
4. 설정한 모델값의 변경이 아닌 경우
5. 엘리먼트 값이 컴파일되지 못할 경우(서버 렌더링 등)


이와같은 문제가 발생할 경우 해결 가능한 방법으로 아래와 같이 처리할 수 있습니다.

1. 이벤트를 onchange등의 자바스크립트 이벤트로 바꾸어 사용하는 방법

2. 사용될 모델에 $watch를 사용하여 실행시키는 방법

$scope.$watch("모델명", function() {
  // code here
​​​​​​​});
​​​​​​​

원인 파악이 잘 안되는 경우 가장 간단하게 $watch를 사용하여 해결하는 방법이 가장 빠르게 해결할 수 있는 방법입니다.
코드 스니펫 widget