2013-06-30 6 views
2

저는 AngularJS이지만 MVC/MVVM 프레임 워크를 잘 알고 있습니다. 나는 OO 배경에서 왔지만 Javascript의 준 기능적 성격을 배우는 데 상당한 시간을 투자했다. 이제까지 클로저가 의미있는 사용을하지 않고 클로저를 이해한다고 가정 해 보겠습니다.

저는 AngularJS에서 컨트롤러 개념과 $ scope 개념의 차이점을 명확하게하려고합니다.

이하 '$ scope'개체를 사용할 때 AngularJS의 'scope'개념을 사용할 때주의해야합니다.

AngularJS Conceptual Overview (http://docs.angularjs.org/guide/concepts) 컨트롤러는 뷰와 컨트롤러 사이의 접착제로 범위를 사용하는 것으로 설명됩니다. 범위는 모델 컨테이너와 비슷합니다.

이것은 의미가 있습니다.

$ scope 객체에 함수가 추가 된 곳에서 보았던 모든 예제가 의미가 없습니다. $ scope 객체가 컨트롤러의 본문입니까? 그렇다면 '범위'개념과 혼동 스럽기 때문에이 개체의 이름이 적절하지 않습니까?

은 $ 범위는 뷰와 컨트롤러 모두가 알고있는 객체입니다

답변

5

...

그것은 실제로 컨트롤러 자체가 있지만, 그것을 통해 당신이 통과 할 수없는 것 - AngularJS와-그러나-혼란을 -Liking 데이터 및 메소드에 대한 참조를 작성하여 뷰 내부에서 사용하십시오.

각도의 컨트롤러는보기와 컨트롤러의 "상호적인 친구"인 객체를 유지하는 프리젠 테이션 모델과 비슷합니다 ... 적어도 내가 생각하는 방식은 다음과 같습니다.

+0

고마워요! 따라서 뷰와 관련된 비즈니스 로직은 컨트롤러 또는 $ 범위에 포함됩니까? 이것들은 같은 것입니까? 사람들이 $ scope에 메소드를 추가하는 것을 봅니다. –

+0

뷰에 무엇인가 노출하고 싶다면 뷰를 $ scope에 첨부하십시오. 데이터 변환을위한 다른 방법은 콘트롤러 안에 넣을 수 있지만 대개 모든 계산이나 변환 후에 $ scope에서 찾을 수 있습니다 :) –

+0

Thanks 다시! 그래서 서버에서 JSON 객체 조작은 컨트롤러에 있지만 div의 배경을 변경하는 코드는 $ scope에 있어야할까요? –

관련 문제