相关疑难解决方法(0)

Angular2路由器附加组件而不是替换它

我有一个带有一个路由器插座的Angular2应用程序,根据侧面菜单中单击的链接显示不同的组件.

主要组件的标记包含这样的<router-outlet>外观

<div *ngIf="authenticated == false">
  <app-login></app-login>
</div>
<div *ngIf="authenticated">
  <div class="page home-page">
    <header class="header">
      <app-navbar></app-navbar>
    </header>
    <div class="page-content d-flex align-items-stretch">
      <div class="sidebar-container">
        <app-sidebar-menu></app-sidebar-menu>
      </div>
      <div class="content-inner">
      <app-page-header></app-page-header>
        <div id="sub-content">
          <router-outlet></router-outlet>
        </div>
        <app-footer></app-footer>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我单击演示链接,将演示演示组件,但如果我单击Home链接,则主组件将呈现在DOM中的演示组件上方.点击它们几次将产生这样的DOM

<div _ngcontent-c0="" id="sub-content">
    <router-outlet _ngcontent-c0=""></router-outlet>
  <app-home _nghost-c6="">...</app-home>
  <app-demo _nghost-c7="">...</app-demo>
  <app-home _nghost-c6="">...</app-home> <!-- Why so many here? Should be just either one <app-home> or <app-demo>  -->
  <app-demo _nghost-c7="">...</app-demo>
  <app-home _nghost-c6="">...</app-home>
  <app-demo _nghost-c7="">...</app-demo>
  <app-footer _ngcontent-c0="" _nghost-c5="">...</app-footer>
</div>
Run Code Online (Sandbox Code Playgroud)

路线定义为 …

angular angular-router

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

angular ×1

angular-router ×1