@leftstick 말이 맞습니다. AngularJS는 종속성 주입 스타일을 사용하여 전체 애플리케이션 프레임워크를 구조화하는 것이 가장 좋지만 전역 변수를 선언하는 것이 아니라 서비스로 만드는 것이 가장 좋습니다. 이렇게 하면 많은 문제를 피할 수 있습니다:
이름 충돌. JavaScript의 이름 충돌은 경고를 표시하지 않습니다. 프로젝트 규모가 작다면 발생 가능성은 낮지만 디버깅하기가 매우 어렵습니다.
초기화 순서. ACtrl에서 전역 변수 window.a를 정의하는 경우(예를 들어 BCtrl에서 사용하려는 경우) 다음을 확인해야 합니다. ACtrl은 BCtrl보다 먼저 실행되는데, 이는 종종 구현하기 어렵거나 심지어 논리적으로 혼란스럽기까지 합니다. ACtrl中定义了一个全局变量window.a,比如你想在BCtrl中使用它,那么你需要保证ACtrl在BCtrl之前得到执行,这往往是不好实现,甚至逻辑混乱的。
在Angular中,最合理的办法是把a做成一个aService,注入到ACtrl和BCtrl
Angular에서 가장 합리적인 방법은 a를 aService로 만들고 이를 ACtrl 및 BCtrl에 삽입하는 것입니다. 중에.
서비스를 정의하는 방법과 모듈, 서비스, 공장 및 공급자 간의 관계는 다음 블로그를 참조할 수 있습니다.
아이디어가 틀렸네요,
angular
中不需要定义全局变量。你的数据应该通过service
,factory
,provider
제공해드리겠습니다.그리고 이러한 것들은 종속성이 주입될 수 있으므로 전역 변수가 전혀 필요하지 않습니다
$rootScope는 객체이며 $rootScope.xxx='';
형식으로 전역 변수에 바인딩될 수 있습니다.@leftstick 말이 맞습니다. AngularJS는 종속성 주입 스타일을 사용하여 전체 애플리케이션 프레임워크를 구조화하는 것이 가장 좋지만 전역 변수를 선언하는 것이 아니라 서비스로 만드는 것이 가장 좋습니다. 이렇게 하면 많은 문제를 피할 수 있습니다:
ACtrl
에서 전역 변수window.a
를 정의하는 경우(예를 들어BCtrl
에서 사용하려는 경우) 다음을 확인해야 합니다.ACtrl
은BCtrl
보다 먼저 실행되는데, 이는 종종 구현하기 어렵거나 심지어 논리적으로 혼란스럽기까지 합니다.ACtrl
中定义了一个全局变量window.a
,比如你想在BCtrl
中使用它,那么你需要保证ACtrl
在BCtrl
之前得到执行,这往往是不好实现,甚至逻辑混乱的。在Angular中,最合理的办法是把
Angular에서 가장 합리적인 방법은a
做成一个aService
,注入到ACtrl
和BCtrl
a
를aService
로 만들고 이를ACtrl
및BCtrl
에 삽입하는 것입니다. 중에.으아악
이제 anglejs2가 출시되었습니다