我正在阅读 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
}
}
});