我需要在引导应用程序Angular 1之前从Api端点加载一些参数。
我有一个工厂,它包含我的请求终点函数并保存在内存中。我需要使用这个工厂来执行我的角色。问题是我无法在bootstrap应用程序之前注入我的facotry。我不能创建其他同样的角色,我必须使用这个工厂来运行我的应用程序。
有人对此案有好的建议吗?谁已经需要这个案子?
谢谢大家。
答案 0 :(得分:0)
如果您使用的是ngRoute
路由器,则可以使用resolve函数来延迟视图及其控制器的实例化,直到数据从异步API到达为止。
resolve - {Object.<string, Function>=}
- 应该注入控制器的可选依赖关系图。如果这些依赖项中的任何一个是promise,路由器将等待它们全部被解析或者在实例化控制器之前被拒绝。如果成功解析了所有promise,则会注入已解析的promise的值,并触发$routeChangeSuccess事件。如果任何承诺被拒绝,则$routeChangeError事件被触发。为了更轻松地从模板访问已解析的依赖项,解析映射将在路由范围内,$resolve
(默认情况下)或resolveAs
属性指定的自定义名称下可用(请参阅下文) )。当使用components作为路径模板时,这可能特别有用。
答案 1 :(得分:-1)
我认为你应该可以使用angular-ui-router。您可以在路线上使用解决。这将强制Angular在继续渲染控制器之前解析数据。 您可以在ui-router中输入默认状态之前设置解析。