博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS模块加载
阅读量:5309 次
发布时间:2019-06-14

本文共 836 字,大约阅读时间需要 2 分钟。

配置块

在模块的加载阶段,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');

}

}

})

})

转载于:https://www.cnblogs.com/1000px/p/4670675.html

你可能感兴趣的文章
简单了解HashCode()
查看>>
闭包理解
查看>>
asp.net C#后台实现下载文件的几种方法(全)
查看>>
Web前端开发工程师的具备条件
查看>>
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>