首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular-5 material sidenav在单独的组件中可在其他组件中重用

angular-5 material sidenav在单独的组件中可在其他组件中重用
EN

Stack Overflow用户
提问于 2018-04-19 20:19:36
回答 1查看 4.2K关注 0票数 3

我是新的角度材料以下material.angular.io我想有多个页面上的sidnav他们提供的代码包含sidenav以及页面的内容,如下所示

代码语言:javascript
复制
    <mat-drawer-container class="sidebar-container" autosize>

      <mat-drawer #drawer class="sidebar-sidenav" mode="side">
        <!--sidenav content(links) goes here-->
        <app-sidenav></app-sidenav>

      </mat-drawer>

      <div class="sidebar-sidenav-content">
         <!--page content goes here-->
         <p>page content area</p>
      </div>

   </mat-drawer-container>

如果我想在多个页面上重用相同的sidenav,我将不得不在所有页面中一次又一次地编写相同的代码bcz如果我像这样从mat-drawer-container移出.sidebar-sidenav-content就不起作用了

代码语言:javascript
复制
<mat-drawer-container class="sidebar-container" autosize>

  <mat-drawer #drawer class="sidebar-sidenav" mode="side">
    <!--sidenav content goes here-->
    <app-sidenav></app-sidenav>

  </mat-drawer>

代码语言:javascript
复制
  <div class="sidebar-sidenav-content">
     <!--page content goes here-->
     <p>page content area</p>
  </div>

上面结构显示了sidenav下面的页面内容区域sidebar-sidenav-content,而我希望并排显示。

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 03:42:54

我最近完成了一个类似的任务,它是非常可行的。请参阅Michael PrenticeDynamic Expanding Nav Drawer Example。您可以创建其他对象,如示例中的'navItems‘,并使用页面标题或其他路由数据来查找相关的sidenav项:

代码语言:javascript
复制
<mat-sidenav #appDrawer mode="over" opened="false">
<mat-nav-list>
  <app-menu-list-item *ngFor="let item of navItems" [item]="item"></app-menu-list-item>
</mat-nav-list>

虽然这提供了非常少的代码的灵活性,如果应用程序中有未来的变化,实现路由和守卫可能是具有挑战性的,所以你可能想要首先设计这些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49920985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档