2

我正在阅读 Angular 文档$routeProvider,我的参数说:

resolve- {Object.=} - 应注入控制器的可选依赖映射。如果这些依赖项中的任何一个是承诺,路由器将等待它们全部解决或在控制器实例化之前被拒绝。如果所有的 Promise 都成功解决,则注入已解决的 Promise 的值并触发 $routeChangeSuccess 事件。如果任何一个 Promise 被拒绝,该 $routeChangeError事件就会被触发。地图对象是:

key– {string}:要注入控制器的依赖项的名称。factory - {string|function}:如果是字符串,那么它是服务的别名。否则如果是函数,则将其注入并将返回值视为依赖项。如果结果是一个承诺,它会在其值被注入控制器之前被解析。请注意,ngRoute.$routeParams 仍将引用这些解析函数中的先前路由。改为使用 $route.current.params 来访问新的路由参数。

那么有没有办法resolve在 routeProvider whenrouteChangeStart而不是 when routeChangeSuccess

为了解释我的推理 - 我想在 routeChangeStart 上运行解析,因为我正在为我的所有应用程序设置配置参数,并且我希望它们能够尽快访问,而 ChangeSuccess 是稍后的一步。

我的代码其实很简单:

$routeProvider
.when('/',{
   templateUrl:'amagic_template.html',
   controller:'Ctrl',
   resolve: {
    load: function (configFactory) {
      return configFactory.load(); // promises in here 
    } 
   }
});
4

0 回答 0