Я новичок в Angular 2. Мое приложение использует 2 шаблона, один для гостя и другой для аутентифицированных пользователей. Чтобы сделать это, я поставил это в app.component.htmlУгловой 2 - Переопределение маршрута с угловым маршрутом 3.3.0
<router-outlet name="header"></router-outlet>
<router-outlet name="left"></router-outlet>
<router-outlet></router-outlet>
<router-outlet name="footer"></router-outlet>
В моих app.routes.ts файл я определил выходы для авторизованных пользователей, как что:
export const routes: Routes = [
{ path: '', component: LoginComponent },
{ path: '' , component: HeaderComponent, outlet: 'header' },
{ path: '' , component: LeftComponent, outlet: 'left' },
{ path: '' , component: FooterComponent, outlet: 'footer' },
...
];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
Но для гостевых пользователей в моем LoginComponent
я хочу заменить компоненты розетки на EmptyComponent
следующим образом:
{ path: '' , component: EmptyComponent, outlet: 'left' }
Маршруты загружаются в app.module.ts:
import { routing } from './app.routes';
@NgModule({
imports: [
...
routing
],
declarations: [
AppComponent,
HeaderComponent,
LeftComponent,
FooterComponent,
LoginComponent
],
providers: [
...
],
bootstrap: [ AppComponent ]
})
export class AppModule {}
Но я не знаю, как сделать это. Я попытался с директивой @Routes, но я использую угловую-рут-3.3.0 и эта директива удаляется ...
Спасибо за ваш ответ. Я импортирую все URL-адреса в app.routes, затем создаю «user.component», который определяет новые маршруты и вызывает «this.router.resetConfig», а затем «Записанные компоненты» расширяет «user.component», но «resetConfig» не имеет эффекта (и нет ошибка в консоли) – Maxime
Предполагаю, что вы сначала заходите в какой-то путь для входа в систему, а затем меняете routeconfig, если успешно прошли проверку подлинности, а затем переходите обратно? –
О, теперь я вызываю 'resetConfig' после входа в систему, прежде чем перенаправить пользователя. Но теперь у меня есть эта ошибка: «Unhandled Promise rejection: ошибки анализа шаблона: « router-outlet »не является известным элементом: 1. Если« роутер-розетка »является угловым компонентом, проверьте, что он является частью этого модуль. 2. Если «маршрутизатор-розетка» является веб-компонентом, добавьте «CUSTOM_ELEMENTS_SCHEMA» в «@ NgModule.schemas» этого компонента для подавления этого сообщения. («[ERROR ->] router-outlet> router-outlet>
Maxime