大佬教程收集整理的这篇文章主要介绍了AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求。,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在模块的加载阶段,AngularJS会在提供者注册和配置的过程中对模块进行配置。在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前进行修改的部分。
angular.@H_972_9@module('myApp', []).config(function($provide){});
这本书的大部分@L_616_3@都在使用config()
函数的语法糖,并在配置阶段执行。例如,我们在某个模块之上创建一个服务或指令时:
factory'myFactory' (){var service ={};return service;})directive'myDirective'template: '<button>Click me</button>'}})
AngularJS会在编译时执行这些辅助函数。它们在功能上等同于下面的写法:
$provide $compileProvider $provide()}); $compileProvider}; 需要特别注意,AngularJS会以这些函数书写和注册的顺序来执行它们。也就是说我们无法注入一个尚未注册的提供者。
当对模块进行配置时,需要格外注意只有少数几种类型的对象可以被注入到
config()
函数中:提供者和常量。如果我们将一个服务注入进去,会在真正对其进行配置之前就意外地把服务实例化了。这种对配置服务进行严格限制的另外一个副作用就是,我们只能注入用
provider()
语法构建的服务,其他的则不行。更多关于用
provider()
语法构建服务的@L_616_3@,请查看第14章。这些
config()
代码块可以对我们的服务进行自定义配置,例如设置API密钥或自定义URL等。也可以定义多个配置块,它们会按照顺序执行,这样就可以将应用不同阶段的配置代码集中在不同的代码块中。
['ngRoute'])$routeProvider $routeProviderwhen'/' controller'WelcomeController''views/welcome.html'(ConnectionProvider setApiKey'SOME_API_KEY');config()
函数接受一个参数。
@H_772_184@ 11.2 运行块1.3及之后的版本,所有的
.config
块都在.provider
运行之后运行。这意味着不能使用.config
来配置“下游”provider。在任何情况下这都不是一种好的做法,在v1.3+中这么做是行不通的。和配置块不同,运行块在注入器创建之后被执行,它是所有AngularJS应用中第一个被执行的方法。
运行块是AngularJS中与@H_720_105@main方法最接近的概念。运行块中的代码块通常很难进行单元测试,它是和应用本身高度耦合的。
运行块通常用来注册全局的事件监听器。例如,我们会在
.run()
块中设置路由事件的监听器以及过滤未经授权的请求。假设我们需要在每次路由发生变化时,都执行一个函数来验证用户的权限,放置这个功能唯一合理的地方就是
run
方法:run$rootScopeAuthservice $rootScope$on'$routeChangeStart'evtnext current // 如果用户未登录if(!userLoggedIn())templateUrl ==="login.html" // 已经转向登录路由因此无需重定向else $LOCATIOnpath'/login'run()函数接受一个参数。
以上是大佬教程为你收集整理的AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求。全部内容,希望文章能够帮你解决AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求。所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。