반응형
Scope 이해하기 :
(출처: 자바스크립트 이해와 AngularJS활용)
$scope(rootScope):
Angularjs 가 실행되는 과정에는 컴파일 작업과 링킹 작업이 있다
링킹 작업시에 만들어진 데이터를 보관하는 scope 라는 객체가 만들어 진다.
일반적으로 하나의 페이지가 모듈을 사용하려면 하나의 $scope 객체가 생성되어서 유지 된다.
모듈 선언에 맞게 생성되는 scope 를 rootScope 라고 한다.
rootScope 는 하나의 전역 객체와 유사하게 동작한다.
rootScope 에 선언된 변수는 모듈내의 어느곳에서든 접근 가능하다.
Scope 와 Controller:
View <—— $scope —> Controller
controller 는 로직의 처리를 담당한다.
scope 는 controller 와 view 사이의 데이터 처리를 담당한다. 즉 다리와 같은 역할을 한다.
scope 는 또한 데이터의 범위를 지정하는 용도로서도 사용된다.
AngularJS 로 만든 어플리케이션은 Controller 에 의해 제어 된다?( 제어된다.???)
Controller 정의:
ng-controller=“myController"
myController 는 함수가 된다.(자바스크립트 함수와 같음)
뷰에서 Controller-as 문법:
controller = "dreamController as dream"
위 처럼 선언하면 해당 뷰에서 dream이라는 키워드를 통해 컨트롤러에 접근 할 수있게 된다.
ex; {{examProperty}}와 같은 것을 {{dream.examProperty}} 와 같이 사용 가능하다.
Angular에서 컨트롤러를 정의 한다는 것은 뷰에서 필요한 이벤트를 처리하거나, scope 를 통해서 데이터를 주고 받기 위해서이다.
컨트롤러는 뷰쪽에 더 가까운 존재이다.
컨트롤러를 설계하는 경우 scope 를 주입받아 사용하도록 설계 한다.
컨트롤러는 external 방식으로도 사용가능하다.즉 자바스크립트에서 외부 파일 불러오듯이 사용 가능하다.
반응형