angular.js - 在使用Angular开发中如何将数据注入$rootScope
PHP中文网
PHP中文网 2017-05-15 16:53:43
0
5
599

另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/",可以使得其他的Ctrl.js,都可以调用。

PHP中文网
PHP中文网

认证0级讲师

모든 응답(5)
小葫芦

아이디어가 틀렸네요, angular中不需要定义全局变量。你的数据应该通过service, factory, provider제공해드리겠습니다.
그리고 이러한 것들은 종속성이 주입될 수 있으므로 전역 변수가 전혀 필요하지 않습니다

PHPzhong

$rootScope는 객체이며 $rootScope.xxx='';

형식으로 전역 변수에 바인딩될 수 있습니다.
某草草

@leftstick 말이 맞습니다. AngularJS는 종속성 주입 스타일을 사용하여 전체 애플리케이션 프레임워크를 구조화하는 것이 가장 좋지만 전역 변수를 선언하는 것이 아니라 서비스로 만드는 것이 가장 좋습니다. 이렇게 하면 많은 문제를 피할 수 있습니다:

  1. 이름 충돌. JavaScript의 이름 충돌은 경고를 표시하지 않습니다. 프로젝트 규모가 작다면 발생 가능성은 낮지만 디버깅하기가 매우 어렵습니다.
  2. 초기화 순서. ACtrl에서 전역 변수 window.a를 정의하는 경우(예를 들어 BCtrl에서 사용하려는 경우) 다음을 확인해야 합니다. ACtrlBCtrl보다 먼저 실행되는데, 이는 종종 구현하기 어렵거나 심지어 논리적으로 혼란스럽기까지 합니다. ACtrl中定义了一个全局变量window.a,比如你想在BCtrl中使用它,那么你需要保证ACtrlBCtrl之前得到执行,这往往是不好实现,甚至逻辑混乱的。

在Angular中,最合理的办法是把a做成一个aService,注入到ACtrlBCtrl

Angular에서 가장 합리적인 방법은 aaService로 만들고 이를 ACtrlBCtrl에 삽입하는 것입니다. 중에.

서비스를 정의하는 방법과 모듈, 서비스, 공장 및 공급자 간의 관계는 다음 블로그를 참조할 수 있습니다.

http://harttle.github.io/2015/06/07/angular-module.html🎜
我想大声告诉你

으아악

刘奇

이제 anglejs2가 출시되었습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿