另外,是否有類似main.js的那種js,裡面可以去定義全域變數。例如var http = "www.xxxx.com/"
,可以使得其他的Ctrl.js,都可以呼叫。
高洛峰2017-05-15 16:55:43
思路不對,angular
中不需要定义全局变量。你的数据应该通过service
, factory
, provider
來提供。
而這些東西是可以依賴注入的,所以壓根不需要全域變數
某草草2017-05-15 16:55:43
@leftstick 說的對,AngularJS使用依賴注入的風格來架構整個應用的框架,最好不要聲明全域變量,而是把它做成Service。這樣你能避免不少問題:
ACtrl
中定义了一个全局变量window.a
,比如你想在BCtrl
中使用它,那么你需要保证ACtrl
在BCtrl
之前得到執行,這往往是不好實現,甚至是邏輯混亂的。 在Angular中,最合理的辦法就是把a
做成一个aService
,注入到ACtrl
和BCtrl
之中。
如何定義一個service,以及Module、Service、Factory、Provider之間的關係可以參考這篇部落格:
http://harttle.github.io/2015/06/07/angular-module.html