최근에Angular를 공부하고 있는 이유는 새로운 프로젝트이고 vue보다 훨씬 더 모호한 느낌이 들기 때문입니다
코드를 게시하고 조언을 구하세요
黄舟2017-06-07 09:25:44
vue를 이해하셨으니 부적절하게 비교하겠습니다. vue에는 data() 함수와 메소드 객체가 있습니다. 그들이 반환하는 속성과 메소드는 템플릿에서 직접 사용할 수 있습니다. 범위 내 개체의 메서드와 속성은 템플릿에서 직접 사용할 수 있습니다.
天蓬老师2017-06-07 09:25:44
간단히 말하면 위에서 말씀드린 내용에 동의합니다. 이는 뷰와 컨트롤러 간의 연결로 이해될 수 있습니다.
실제로 데이터 기반 프레임워크의 경우 페이지(보기) 변경은 데이터 변경을 기반으로 합니다. 이는 일반적으로 페이지 데이터를 저장하는 데 사용됩니다. 물론 이 기능은 페이지에 표시되는 데이터를 저장하는 데 국한되지 않고 표시할 필요는 없지만 "다른 일이 발생하도록" 허용하는 일부 데이터를 저장할 수도 있습니다. $scope
는 $rootScope
를 기반으로 하는 인스턴스라는 것입니다. 범위라는 단어 자체는 범위를 의미합니다. Angular의 $scope
是一个基于 $rootScope
的实例。scope 这个单词本身就有作用域的意思,Angular 中的 $scope
도 JavaScript의 범위 특성, 즉 상속의 특성을 갖습니다.
예를 들어 JavaScript에서 하위 함수는 변수 이름을 통해 상위 함수의 범위에 액세스할 수 있지만 상위는 하위에 액세스할 수 없습니다. 마찬가지로 Angular에서 하위 컨트롤러
는 $parent
를 통해 상위 컨트롤러
의 controller
可以通过 $parent
访问父级 controller
的 $scope
에 액세스할 수 있지만 상위는 하위에 액세스할 수 없습니다.
부모가 자녀에게 접근하기 위한 JavaScript에는 일반적으로 두 가지 솔루션이 있습니다. 하나는 전역 변수를 이용하는 것이고, 다른 하나는 클로저 작성을 통해 자체 범위에 특정 값을 노출하는 것입니다. Angular에서도 방법은 비슷합니다. 하나는 $rootScope
;二是通过 $emit
由事件去控制;三是通过 factory
或者 service
还有 constant
와 같은 매개변수를 전달하는 것이지만 이 방법에는 종속성 주입과 같은 것도 포함됩니다.
장기적으로 $scope
는 좋지 않습니다 [짙은 안개. . . 제 개인적인 경험으로는 주의를 기울이지 않으면 스코프 블리딩이 발생할 가능성이 높아 자식 수준에서 특정 값을 얻어서는 안 되지만 상속 관계로 인해 자식 수준에서는 한 값을 조회하게 된다는 것입니다. 레벨을 확인하고 이 값을 찾으세요. 보기에는 좋지만 작동이 잘못될 가능성이 있고 디버그하기가 더 어렵습니다.
Angular 1에서 controllerAs
语法,这样你就不需要在 Angular 1 中用 $scope
了。在 Angular 2 中是肯定不用 $scope
를 사용할 필요가 없도록 controllerAs
구문에 대해 배울 수 있습니다. Angular 2에서는
여기서 말할 수 있는 내용은 매우 제한적입니다. 공식 문서를 꼭 읽어보시기 바랍니다:
https://docs.angularjs.org/gu...
$scope
커스텀 디렉티브를 작성하고 싶다면 이해하지 않고서는 잘 작성하기 어려울 것입니다
위 내용은 순전히 개인적인 이해이므로 정정해 주시기 바랍니다🎜