美文网首页你不知道的JavaScriptAngular.js专场让前端飞
angular的config和run分别是干什么的??

angular的config和run分别是干什么的??

作者: 长天_ | 来源:发表于2017-07-17 10:53 被阅读118次

    大家好,我是IT修真院深圳分院第01期学员,一枚正直善良的web程序员。

    今天给大家分享一下,修真院官网 JS任务中AngularJS部分可能会使用到的知识点:

    angular的config和run分别是干什么的??


    1.背景介绍

    ANGULARJS模块加载

    AngularJS模块可以在被加载和执行之前对其自身进行配置。我们可以在应用的加载阶段应用不同的逻辑组对其修改,在模块加载阶段,AngularJS会在提供者(provide)注册和配置的过程中对模块进行配置。在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前对其进行修改的部分。

    AngularJS的工作流包括了 配置块(config) 和 运行块(run) 并且在编译期间会执行它们


    2.知识剖析

          2.1、配置(config)

    通过config方法实现对模块的配置,AngularJS中的服务多数都对应一个provider, 用来执行与对应服务相同的功能或对其配置,比如$log、$http、$location都是内置服务, 相对应的“provider”分别是$logProvider、$httpProvider、$locationPorvider。

    config

           

           2.2、运行块(run)

    和配置块不同,运行块在注入器创建之后被执行,它是所有AngularJS应用中第一个被执行的方法。

    运行块是AngularJS中与main方法最接近的概念。运行块中的代码块通常很难进行单元测试,它是和应用本身高度耦合的。

    运行块通常用来注册全局的事件监听器。例如,我们会在.run()块中设置路由事件的监听器以及过滤未经授权的请求。

    调用方式1: 服务也是以模块形式存在的,对外提供特定功能,将服务做为依赖注入进去的,然后再进行调用, 调用方式2: 直接运行相应的服务模块, AngularJS提供了run方法来实现。

    run方法还是最先执行的,利用这个特点我们可以将一些需要优先执行的功能通过run方法来运行。

    假设我们需要在每次路由发生变化时,都执行一个函数来验证用户的权限,放置这个功能唯一合理的地方就是run方法:

    run


    3.常见问题

           如何通过 config 配置一个路由模块?


    4.解决方案

            下面实例使用的是第三方ui-router

    ui-router中config配置


    5.扩展思考

    provider是个啥?

    $provide服务负责告诉Angular如何创造一个新的可注入的东西:即服务。服务会被叫做供应商的东西来定义,你可以使用$provide来创建一个供应商。你需要使用$provide中的provider()方法来定义一个供应商,同时你也可以通过要求$provide被注入到一个应用的config函数中来获得$provide服务。


    6.参考文献

    参考一:angular权威指南

    参考二:AngularJS ui-router配置


    7.更多讨论

    王大佬问:angularjs中config和run的区别?

    答:执行顺序不同,注入服务类型不同

    隋大佬问:什么样的东西能够被注入到config里面呢?

    答:provider(提供者)、constant(常量)

    杨大佬问:为什么ui-router要配置config,如果不配置会再怎么样?

    众人懵逼???


    详见视频:


    AngularJS中的config和run_腾讯视频

    PPT链接请戳这里


    感谢大家观看!

    今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

    相关文章

      网友评论

        本文标题:angular的config和run分别是干什么的??

        本文链接:https://www.haomeiwen.com/subject/jcrxkxtx.html