angular.js - 在使用Angular開發中如何將資料注入$rootScope
PHP中文网
PHP中文网 2017-05-15 16:53:43
0
5
602

另外,是否有類似main.js的那種js,裡面可以去定義全域變數。例如var http = "www.xxxx.com/",可以使得其他的Ctrl.js,都可以呼叫。

PHP中文网
PHP中文网

认证0级讲师

全部回覆(5)
小葫芦

思路不對,angular中不需要定义全局变量。你的数据应该通过service, factory, provider來提供。
而這些東西是可以依賴注入的,所以壓根不需要全域變數

PHPzhong

$rootScope是個對象,可以$rootScope.xxx='';的形式去綁定全域的變數

某草草

@leftstick 說的對,AngularJS使用依賴注入的風格來架構整個應用的框架,最好不要聲明全域變量,而是把它做成Service。這樣你能避免不少問題:

  1. 命名衝突。在javascript中命名衝突不會給任何warning,如果你的專案不大出現機率較小,但非常難以調試。
  2. 初始化順序。如果你在ACtrl中定义了一个全局变量window.a,比如你想在BCtrl中使用它,那么你需要保证ACtrlBCtrl之前得到執行,這往往是不好實現,甚至是邏輯混亂的。

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

如何定義一個service,以及Module、Service、Factory、Provider之間的關係可以參考這篇部落格:

http://harttle.github.io/2015/06/07/angular-module.html

我想大声告诉你

雷雷

刘奇

現在angularjs2 都出來了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板