我正在阅读$routeProvider
的Angular文档,我参数说:
resolve
- {Object。=} - 可选的地图 应该注入控制器的依赖项。如果有的话 这些依赖是承诺,路由器将等待它们全部到 在控制器之前被解决或被拒绝 实例化。如果所有承诺都成功解决了,那么 注入的Promises的值被注入并且$ routeChangeSuccess 事件被解雇了。如果任何承诺被拒绝了$routeChangeError
事件被触发。地图对象是:
key
- {string}:要注入的依赖项的名称 控制器。 factory - {string | function}:如果是string,那么它就是别名 为了服务。否则如果功能,那么它是注入和 返回值被视为依赖项。如果结果是承诺, 在将值注入控制器之前解决它。是 意识到ngRoute。$ routeParams仍然会引用之前的路线 在这些解决功能中。使用$ route.current.params进行访问 相反,新的路线参数。
那么在resolve
而不是routeChangeStart
时,路由提供者中有routeChangeSuccess
的任何方式吗?
要解释我的推理 - 我想在routeChangeStart上运行解决方案,因为我正在为我的所有应用程序设置配置参数,我希望尽快让它们可访问,而ChangeSuccess则稍后一步。< / p>
我的代码实际上非常简单:
$routeProvider
.when('/',{
templateUrl:'amagic_template.html',
controller:'Ctrl',
resolve: {
load: function (configFactory) {
return configFactory.load(); // promises in here
}
}
});