У меня есть два компонента LoginComponentA
и LoginComponentB
.Каждый из них должен быть доступен в зависимости от переменной, связанной с доступом к порталу.И они должны быть под таким же URL-адресом .
Я пытался добиться этого с помощью:
{
path: 'login',
component: (() => {
switch (AppSettings.loginPortal) {
case 'portalA':
return LoginComponentA;
case 'portalB':
return LoginComponentB;
}
})()
}
Но я получил ошибки в ng serve:
ERROR in Error encountered resolving symbol values statically.
Reference to a local (non-exported) symbol 'appRoutes'.
Consider exporting the symbol (position 42:7 in the original .ts file), resolving symbol AppRoutingModule in /home/lis/apps/AZGIV/src/app/app-routing.module.ts
Если я оберну функцию после компонента следующим образом:
export function getLoginComponent() {
switch (AppSettings.loginPortal) {
case 'portalA':
return LoginComponentA;
case 'portalB':
return LoginComponentB;
};
}
...
{
path: 'login',
component: getLoginComponent
}
Я получу ошибки:
Type '() => typeof LoginComponentA | typeof LoginComponentB' is not assignable to type 'Type<any>'.
Как я могу исправить ошибку?Или есть другой способ условного отображения компонентов по тому же маршруту?
Я использую Angular 4.2.4