【问题标题】:Angular4 material: How to load content to sidenavAngular4材料:如何将内容加载到sidenav
【发布时间】:2017-08-30 20:35:27
【问题描述】:

所以我把我的 sidenav 放在 app.component 中,类似于:

<md-sidenav-container fullscreen> 
  <md-sidenav #sidepanel>...</md-sidenav>
  <div class="app">
    <main>
      <router-outlet></router-outlet>
    </main>
  </div>
</md-sidenav-container>

现在,我已将对 sidenav 的引用添加到我的 siteService 中,它可以俯瞰所有内容,并且我可以在每次注入 siteService 的组件时对其进行控制。

我想在里面动态加载内容(类似于 router-outlet 对 router-naviagtion 所做的...

假设我想将 XyComponent1 或 XyComponent2 加载到 sidenav,我将如何以编程方式执行此操作?

【问题讨论】:

    标签: angular angular-material2


    【解决方案1】:

    您可以使用辅助路由来做到这一点:

    <md-sidenav-container fullscreen> 
      <md-sidenav>
        <router-outlet name="sidenav"></router-outlet>
      </md-sidenav>
      <div class="app">
        <main>
          <router-outlet></router-outlet>
        </main>
      </div>
    </md-sidenav-container>
    

    您可以通过传递插座名称来控制它:

    <a [routerLink]="[{ outlets: { 'sidenav': ['sidenav-component1'] } }]">
      Click to apply new sidenav.
    </a>
    

    您还需要定义路由的组件。 This guide 是有关使用辅助路由的更多详细信息的精彩摘录。

    【讨论】:

    • @Z。 Bagley 您能否更新您的答案以显示组件如何在 .ts 文件而不是 html 中传递。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多