angular.run和angular.config的区别

ng的运行机制:

  config阶段是给了ng上下文一个针对constant与provider修改其内部属性的一个阶段

  而run阶段是在config之后的在运行独立的代码块,通常写法runBlock

  简单的说一下就是ng启动阶段是 config-->run-->compile/link

AngularJS中的run方法初始化全局数据,只对全局作用域起作用,如$rootScope.多个控制器之间可以共享数据

angular.module('ePolicy', ['ionic', 'ePolicy.controllers', 'ePolicy.services', 'ePolicy.directives', 'ePolicy.filters', 'ionic-datepicker','ionic-datepickerg', 'jm.i18next'])
.run(function($ionicPlatform, $rootScope, $state, $ionicHistory,HttpRequest, $i18next, DeviceInfo, Authorization, LocalStorage, Prompt, HotPush,$location, NoticeCenter, UserAgent, $ionicActionSheet,JPush) {
    $ionicPlatform.ready(function() {
        // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
        // for form inputs)
        
        // splash 放在最前面热更新才会起作用
        if(DeviceInfo.appVersion() !== $rootScope.general.version) {
            if(!UserAgent.is_weixin()){
                $state.go('tab.splash');
            };
            //首次启动必须延迟检查更新
            HotPush.checkUpdate(true);
            DeviceInfo.setVersion($rootScope.general.version);
        }else{
            HotPush.checkUpdate(false);
        }
               //.......
} 

区别:

1.执行顺序不同:

  config先执行,run后执行。

2.注入的服务也有区别:

  config可以注入$stateProvider, $urlRouterProvider, $controllerProvider, $provide, $httpProvider等等provider

  run可以像controlle一样注入service,例如配置公共变量等