AngularJS用户界面路由器解决方案和oclazyload竞争条件

时间 2019-02-22
阅读 11
点赞 0
收藏 0
连接skwisgaar

我有一个定义了以下状态的应用程序

.state("some.state", {
    url: ...,
    ...
    resolve: {
        someCheck: ["myService", "$state", checkForNotifications]
    }
})

除了在状态更改期间不时看到浮动的bug、页面加载失败和控制台显示之外,一切都正常工作。

Error: "[$injector:unpr] Unknown provider: MyServiceProvider <- MyService       

经过一些调试,我注意到控制台还包含

ocLazyLoad.componentLoaded
Array(3) [ "app.my-module", "service", "MyService" ]

如果所有的问题都得到了正确的解决,那么这个oclazyload日志会放在第一位。如果发生错误,我会看到myservice稍后被加载。所以,我是怎么理解的-负责装载的LazyloadMyService不知道用户界面路由器中的解决方案,基本上独立工作。在加载oclazyload之前执行resolve时MyService,注入器对此一无所知,并抛出了一个异常(我的理解可能不正确,因为我远不是角度方面的专家)。 有没有办法确保resolve只有在oclazyload加载所有组件之后才能启动?

尚无答案