AngularJS模块加载

配置块

在模块的加载阶段,AngularJS会在提供者注册和安顿的历程中对模块举行安顿。在总体AngularJS的做事流中,这些阶段是唯一可以在使用启动前进行改动的有些。

angular.module(‘myApp’, [])

.config(function($provide) {});

最常使用的factory,directive等都是config函数的语法糖,它们都会在布署阶段实施。

急需越发注意的是,AngularJS会以函数的书写和登记的一一来实施它们。也就是说我们不可以注入一个一直不注册的提供者。唯一分歧的是constant()方法,这些方法总是在所有配置块之前被实践。

运行块

和布署块分裂,运行块在注入器成立之后被执行,它是具有AngularJS应用中率先个被实践的章程,更类似于main方法的定义。运行块中的代码块一般很难展开单元测试,它是和行使本身中度耦合的。运行块一般用来注册全局的事件监听器,例如我们会在.run()块中设置路由事件的监听器以及过滤未经授权的请求。

只要大家需求在历次路由暴发变化时,都举办一个函数来讲明用户的权柄,放置那个效果唯一合理的地点就是run方法。

angular.module(‘myApp’, [])

.run(function($rootScope, AuthService{

$rootScope.$on(‘$routeChangeStart’, function(evt, next, current) {

//if not log in

if(!AuthService.userLoggedIn()) {

if(next.templateUrl ===”login.html”) {

//已经转向登录路由由此无需重定向

} else {

$location.path(‘/login’);

}

}

})

})

相关文章