2016-10-05 2 views
1

У меня есть последующий маршрут в app.module.tsУгловое 2 оказывает страницу дважды на ребенка маршрут

{ 
    path: 'settings', 
    component: SettingsPage, 
    children: [ 
    { 
     path: 'account', 
     component: AccountSettings 
    }, { 
     path: 'profile', 
     component: ProfileSettings 
    }] 
    } 

Мой settingsPage компонент имеет:

<div> 
    <div class="xui-heading-panel secondary"> 
    <div class="container"> 
     <h1>Settings</h1> 
     <ul class="nav nav-pills"> 
     <li 
      *ngFor="let link of links" 
      role="presentation"> 
      <a [routerLink]="[link.route]" routerLinkActive="active">{{link.title}}</a> 
     </li> 
     </ul> 
    </div> 
    </div> 
    <div class="container"> 
    <router-outlet></router-outlet> 
    </div> 
</div> 

При посещении/настройки/профиль маршрутизатора компонент внутренней внутренней части снова отображает всю страницу (например, не только дочернюю страницу). Как я могу это исправить?

+0

Он делает это также для маршрута счета? Попробуйте переместить компонент «Настройки» примерно так: '{path: 'settings', children: [{path:" ", component: SettingsPage}, {path: 'account', component: AccountSettings}, {path: 'profile' , компонент: ProfileSettings}]} ' –

+1

Что не так в этом примере? https://plnkr.co/edit/hUaaWX5FsjzC7FH1nEwC?p=preview – yurzui

+1

Я не вижу в этом ничего плохого. У вас есть настройка со вторым '<маршрутизатором-выходом> ', по которому идет дочерний маршрут, так что похоже, что он ведет себя правильно –

ответ

0

Спасибо за помощь, ребята. Поэтому проблема заключалась в том, что у меня не было

moduleId: __moduleName (внутри аннотации @Component), это означало, что templateUrl не запрашивался относительно каталога компонентов. Таким образом, HTTP-запрос был отправлен в /page_settings.html, что привело к тому, что мой сервер вернул /index.html, и все приложение было отображено внутри контейнера.

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