我正在使用 Angular 2 构建一个应用程序,我需要在其中检查基本 href 并将其与我的app.routes.ts文件中预定义的父路由集相匹配。
目前,我在提供程序中创建了一个硬编码的 parentRoutes = ['login', 'signup', 'admin', 'user', 'manage'] 数组,其使用方式如下:
export let customProvider: any = {
provide: APP_BASE_HREF,
useFactory: () => {
let tenant = window['_app_base'];
let parentRoutes = ['login', 'signup', 'admin', 'user', 'manage'];
if (tenant !== '/') {
if (parentRoutes.indexOf(tenant) > -1)
window['_app_base'] = '/notenant';
else
window['_app_base'] = tenant;
}
else
window['_app_base'] = '/default'; // get default tenant from API
return window['_app_base'];
}
}
我需要使用以下服务动态加载此 parentRoutes 数组:
for (let i = 0; i < this.router.config.length; i++) {
this.parentRoutes .push(this.router.config[i].path);
}
但这必须在 app.module.ts 中的 customProvider(上面写的)中完成
我尝试调用服务,但从 app.module.ts 文件似乎不可能。此外,还有一个生命周期问题。在加载应用程序时,在定义 this.routePath 之前运行 app.module.ts 中的 customProvider 检查。