AngularJS 내부의 jqLite 메소드 scope()에 대하여 알아보겠습니다.


# jqLite 내부의 scope() 메소드가 하는 일


먼저 jqLite는 AngularJS 내부에서 사용되는 간단한 제이쿼리 엔진입니다. 제이쿼리의 일부 기능들이 동작하도록 만들어진 Minified 제이쿼리라고 보시면됩니다.

? scope() 메소드
jqLite는 제이쿼리와는 조금 다른 scope() 메소드를 가지는데 이는 특정 엘리먼트가 속해있는 스코프를 반환해줍니다. 반환된 스코프에 값, 모델을 추가, 변경함으로써 jqLite를 사용한 업데이트 변경사항을 AngularJS에서도 사용할 수 있도록 도와주는 역할을 합니다.

이때 scope() 메소드로 반환된 스코프에 $apply()를 사용하여 값을 업데이트 할 수 있습니다. 아래의 예제를 봐주세요. 만약 특정 버튼의 스코프를 찾아 값을 업데이트 할 경우라고 예를 들어보겠습니다.

angular.element('button').scope().$apply('isDone = true');

이처럼 scope()를 사용해 스코프를 얻은 후 $apply()로 바로 업데이트합니다.