我在我的一个项目中遇到了类似的问题。
对我来说,问题是我在不同的文件中引导我的应用程序(我们对用户何时可以登录有要求,如果他们不能,我们不想加载应用程序)。
它适用于 Angular 4,当我们升级到 Angular 5 时,我们得到了错误。
我们有一些类似的东西:
const hack = false;
if (hack) {
platformBrowserDynamic().bootstrapModule(AppModule);
}
const bootstrap = new Bootstrap(AppModule);
bootstrap.initializeBootstrap();
我们传入我们的模块,让引导文件完成剩下的工作。我们这样做是因为在 Angular 4 中存在一个错误,它不允许引导代码位于另一个文件或承诺中,请参见以下内容:
https://github.com/angular/angular-cli/issues/3540
Angular 4.0.0 找不到引导代码
在升级到 Angular 5 后,将其更改为基于承诺似乎已经解决了这个问题。
const bootstrap = new Bootstrap();
bootstrap.initializeBootstrap().then(() => {
console.log('user is allowed to see, bootstrap the app');
platformBrowserDynamic().bootstrapModule(AppModule);
}, (error) => {
console.log('user is not allowed access do something here', error);
});
希望这可以帮助。