2016-05-03 2 views
1

У меня есть маршруты, определенные в моем файле app.component.ts следующегоотключить директиву/скрыть основанную на маршруте Angular2

@View({ 
    templateUrl: 'assets/home.html', 
    directives: [AccountManagerComponent, HeaderComponent, ROUTER_DIRECTIVES], 

}) 
@RouteConfig([ 
    { path: '/home', name: 'Home', component: HomeComponent }, 
    { path: '/about', name: 'About', component: AboutComponent },  
    { path: '/', name: 'IdentityManager', component: IdentityManagerComponent, useAsDefault: true}  
]) 

шаблона в home.html выглядит следующим образом.

<header id="ag-header" class="app-header" role="banner"></header> 
<section id="ag-content" class="page-login"> 
    <router-outlet></router-outlet> 
</section> 

Теперь я хочу отключить/скрыть элемент 'header', если я нахожусь в идентификационном компоненте.

Могу ли я просмотреть/скрыть директивы в шаблоне на основе маршрута?

ответ

0
<header *ngIf="isIdentityManager" id="ag-header" class="app-header" role="banner"></header> 
<section id="ag-content" class="page-login"> 
    <router-outlet></router-outlet> 
</section> 
constructor(router: Router) { 
    router.subscribe(value => { 
    this.isIdentityManager = router.currentInstruction.component.routeName == 'IdentityManager'; 
    }); 
} 

Смотрите также In Angular 2 how do you determine the active route?

+0

я добавил импорта {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, маршрутизатор} от 'angular2/маршрутизатор'; Но была ли ошибка в том, что router.currentInstruction не является функцией –

+0

Является ли код (маршруты) и HTML в вашем вопросе одним и тем же компонентом? –

+0

да они в одном компоненте. –

Смежные вопросы