AngularJS - resolve和run()执行顺序

12
感谢这个回答AngularJS app.run() documentation?,我可以看到Angular运行模块的顺序,我的问题是:
如果我有:
app.config(function () {
    $routeProvider.when('/', {
        ....
        resolve: {
            // something to resolve
        }
    });
});

app.run(function () {
    // something to run
});

run()方法会在routeProviderresolve:{}被解析之前执行吗?


2
有人像孩子一样玩弄着-1按钮。 - itsme
1个回答

28

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

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

  1. 应用配置
  2. 应用运行
  3. 指令设置
  4. 指令编译
  5. 应用控制器
  6. 指令链接
  7. ** 调用数据resolve **
  8. 新路由的控制器

正如您在fiddle中所看到的,我通过使用一个传递给resolve的对象的属性值作为console.log函数的参数来检查了这一点:

resolve: {
            data: function() {
              console.log('Data resolve called');
            }
         }

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接