另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/",可以使得其他的Ctrl.js,都可以调用。
var http = "www.xxxx.com/"
认证0级讲师
思路不对,angular中不需要定义全局变量。你的数据应该通过service, factory, provider来提供。 而这些东西是可以依赖注入的,所以压根不需要全局变量
angular
service
factory
provider
$rootScope是个对象,可以$rootScope.xxx='';的形式去绑定全局的变量
@leftstick 说的对,AngularJS使用依赖注入的风格来架构整个应用的框架,最好不要声明全局变量,而是把它做成Service。这样你能避免不少问题:
ACtrl
window.a
BCtrl
在Angular中,最合理的办法是把a做成一个aService,注入到ACtrl和BCtrl之中。
a
aService
如何定义一个service,以及Module、Service、Factory、Provider之间的关系可以参考这篇博客:
http://harttle.github.io/2015/06/07/angular-module.html
angular.module('app', []).run(function($rootScope) { $rootScope.http = 'www.xxxx.com/'; });
现在angularjs2 都出来了
思路不对,
angular
中不需要定义全局变量。你的数据应该通过service
,factory
,provider
来提供。而这些东西是可以依赖注入的,所以压根不需要全局变量
$rootScope是个对象,可以$rootScope.xxx='';的形式去绑定全局的变量
@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
现在angularjs2 都出来了