我有一个示例 uirouter/angular-hybrid 应用程序,使用 @ngtools/webpack AngularCompiler 插件成功构建并运行。我已经更新了 main.aot.ts 引导函数以使用 bootstrapModuleFactory 并且可以从 promise 成功处理程序中可用的 platformRef 获取注入器。但是injector.get(UIRouter) 失败并显示“无法读取属性'config' of null”。
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory).then((platformRef) => {
const urlService: UrlService = platformRef.injector.get(UIRouter).urlService;
function startUIRouter() {
urlService.listen();
urlService.sync();
}
platformRef.injector.get<NgZone>(NgZone).run(startUIRouter);
});
我确认 injector.get(NgZone) 会成功并且 injector.get(UIRouter) 会失败。我尝试将调用移动到 NgZone 运行函数内的 injector.get(UIRouter) 没有成功。
我还尝试将 upgrade.bootstrap 调用移动到上面的 promise success 函数中,以确保它首先启动,而没有解决问题。
一个简单的 angularjs 组件渲染良好,因此启动过程似乎成功了,只是无法调用 UIRouter.urlService 上的 listen() 和 sync() 函数。
我还确认了开发配置和非 aot 生产配置,对于同一个示例应用程序,没有这个问题,似乎工作正常。
使用版本:
uirouter/角度混合 v6.0.2
v7.1.4 的角度包,但在 6.0.0 中也失败了(这是 uirouter/angular-hybrid v6.0.2 文档中 package.json 中的角度版本)
感谢您的任何想法。