我有一个Angular2应用程序(RC6版本),其中一些重要的全局参数是使用服务从配置文件加载的,该服务在启动时收集此文件:
@NgModule({
imports: [ BrowserModule, FormsModule, HttpModule, AppRoutes, SomeCustomModule ],
declarations: [ AppComponent ]
providers: [
ConfigurationService,
{
provide: APP_INITIALIZER,
useFactory: (config: ConfigurationService) => () => {
return config.load().then(configParams=> { return true;});
},
deps: [ConfigurationService, HttpModule],
multi: true
}
],
bootstrap:[ AppComponent ]
})
export class AppModule { }
如此代码片段所示,我使用了一个我称之为ConfigurationService的服务,通过http调用读取配置文件并返回一些参数(作为Promise)。如果一切顺利,应用程序将完美加载,这些配置参数可以在整个子模块中访问等。
问题是,如果这个配置文件没有按预期加载,如何阻止应用程序加载子模块? (请注意,AppComponent本质上只是一个路由器出口,重定向到其他路由,由多个子模块定义)。 我可以“禁用”或重定向到错误页面,而不是加载请求路由定义的模块/组件吗?
<router-outlet></router-outlet>
。我尝试用*ngIf来封装它,但是我收到了一个错误“Error: Cannot find primary outlet to load ChildComponent”。你是指添加一个ngOnInit()函数并在其中执行检查吗? - billias