2016-06-26 2 views
1

Допустим, у меня есть Главная, О и Расширенный поиск страниц. В моем AppComponent HTML У меня есть это:Угловое 2 - компонент директивы Переключение в зависимости от страницы

<view-header></view-header> 
<view-search></view-search> 
<router-outlet></router-outlet> 
<view-footer></view-footer> 

Довольно просто. Сначала я загружаю html моего заголовка, а затем html моего поиска по умолчанию, а затем снова и снова.

Как я уже говорил ранее, у меня есть страница Поиск. Очевидно, что я не хочу показывать свою директиву view-search, потому что это довольно бесполезно, когда вы находитесь в . Расширенный поиск.

Так что мой вопрос: Как я могу сказать Angular2, чтобы отключить директиву поиска при переходе на мой ? Расширенный поиск страница?


Edit 1

Другими словами, я хочу сделать что-то вроде этого:

<view-header></view-header> 

<!-- If (not in route "/search") --> 
    <view-search></view-search> 
<!-- Endif --> 

<router-outlet></router-outlet> 
<view-footer></view-footer> 
+0

Используйте 'route.subscribe', чтобы проверить текущий активный маршрут, возможно – AngJobs

+0

@AngJobs Спасибо за ваш ответ, никогда не слышали об этом. Я проверю это. –

+0

Нет проблем, это в официальных документах https://angular.io/docs/ts/latest/guide/router.html – AngJobs

ответ

0

Вы можете просто использовать ngIf (или связываться с [hidden]) в шаблоне:

<view-header></view-header> 
<view-search *ngIf="showViewSearch"></view-search> 
<router-outlet></router-outlet> 
<view-footer></view-footer> 
<router-outlet></router-outlet> 

Где вы будет определять showViewSearch, как

constructor(private activatedRoute: ActivatedRoute) { 
    this.showViewSearch = activatedRoute.component !== Search 
} 

Так viewSearch компонент визуализируется только если текущий маршрут не поиск.

+0

Спасибо за вашу помощь, я попытался сделать так, как вы упомянули, но я не нашел в моем проекте класс 'ActivatedRoute'. Может, это другая версия? моя версия - 'angular-cli: 1.0.0-beta.2-mobile.4' –

+0

Какую версию маршрутизатора вы используете? ActivatedRoute экспортируется с помощью '@ angle/route' версии 3.x. – dfsq

+0

"@ угловой/роутер": "2.0.0-rc.1". Должен ли я обновить его до 3.x? –

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