Angular js - resolve和run()执行顺序

its*_*sme 12 javascript config module angularjs

感谢这个答案AngularJS app.run()文档?我可以看到Angular运行模块的顺序,我的问题是:

如果我有:

app.config(function () {
    $routeProvider.when('/', {
        ....
        resolve: {
            // something to resolve
        }
    });
});

app.run(function () {
    // something to run
});
Run Code Online (Sandbox Code Playgroud)

run()resolve:{}解决routeProvider之前执行?

Kay*_*ave 27

至少在我的实验中,是的,决心是在之后运行的app.run.

这个jsfiddle中你可以看到我得到的调用顺序是:

  1. app config
  2. app运行
  3. 指令设置
  4. 指令编译
  5. app控制器
  6. 指令链接
  7. **数据解析称为**
  8. 新路线的控制器

正如你在小提琴中看到的那样,我通过使用console.log函数作为传递给的对象的属性的值来检查resolve:

resolve: {
            data: function() {
              console.log('Data resolve called');
            }
         }
Run Code Online (Sandbox Code Playgroud)

您可以在代码中使用相同的方法来检查何时routeProvider开始检查依赖项.