在启动应用程序角度之前等待回调请求api

时间:2017-04-04 00:11:55

标签: angularjs angular-ui-router angular-promise

我需要在引导应用程序Angular 1之前从Api端点加载一些参数。

我有一个工厂,它包含我的请求终点函数并保存在内存中。我需要使用这个工厂来执行我的角色。问题是我无法在bootstrap应用程序之前注入我的facotry。我不能创建其他同样的角色,我必须使用这个工厂来运行我的应用程序。

有人对此案有好的建议吗?谁已经需要这个案子?

谢谢大家。

2 个答案:

答案 0 :(得分:0)

如果您使用的是ngRoute路由器,则可以使用resolve函数来延迟视图及其控制器的实例化,直到数据从异步API到达为止。

  
      
  • resolve - {Object.<string, Function>=} - 应该注入控制器的可选依赖关系图。如果这些依赖项中的任何一个是promise,路由器将等待它们全部被解析或者在实例化控制器之前被拒绝。如果成功解析了所有promise,则会注入已解析的promise的值,并触发$routeChangeSuccess事件。如果任何承诺被拒绝,则$routeChangeError事件被触发。为了更轻松地从模板访问已解析的依赖项,解析映射将在路由范围内,$resolve(默认情况下)或resolveAs属性指定的自定义名称下可用(请参阅下文) )。当使用components作为路径模板时,这可能特别有用。
  •   
     

— AngularJS ngRoute $routeProvider API Reference

答案 1 :(得分:-1)

我认为你应该可以使用angular-ui-router。您可以在路线上使用解决。这将强制Angular在继续渲染控制器之前解析数据。 您可以在ui-router中输入默认状态之前设置解析。

参考: https://github.com/angular-ui/ui-router/wiki#resolve