javascript - Angular 4/Angular Material 2 - Sidenav 未定义。组件声明不包含这样的成员

标签 javascript angular flexbox angular-material

我使用 Angular 4 和 Material design 2 创建了一个新项目。

我添加了侧边导航和工具栏。

当所有 html 都在 app.comentent.html 上时,一切都运行良好,但随后我创建了一个新组件来添加工具栏代码,然后我开始收到错误:

这是代码:

app-topnav 组件:

<md-toolbar color="primary">

  <button md-icon-button (click)="sidenav.toggle()">
    <md-icon class="md-24 material-icons">menu</md-icon>
  </button>

  <span class="topbar-spacer"></span>

  <button md-icon-button class="topbar-button-right">
    <md-icon class="md-24 material-icons">notifications</md-icon>
  </button>

  <button md-icon-button class="topbar-button-right">
    <md-icon class="md-24 material-icons">more_vert</md-icon>
  </button>

</md-toolbar>

应用程序组件:

<md-sidenav-container>
    <md-sidenav #sidenav mode="side" class="app-sidenav">
      <md-nav-list>
        <div class="app-user-photo">
          <img class="round user" src="../assets/image.jpg" alt="">
        </div>
        <md-list>
          <md-list-item><i class="material-icons">Home</i><span>Home</span></md-list-item>
        </md-list>
      </md-nav-list>
    </md-sidenav>
    <app-topnav></app-topnav>
    <div class="app-content">
      Content area<br><br><br><br><br><br><br>
    </div>
</md-sidenav-container>**

如何解决此问题,以便 sidenav Toogle 再次工作?

最佳答案

我曾经遇到过和你一样的问题。我通过不将 md-toolbarmd-sidenav-container 分离来解决这个问题。 github 中的很多代码片段并未将 sidenav 和工具栏分开,通常两者位于同一 View 中。我不想将两者分开。

<md-sidenav-container>
  <md-sidenav #sidenav mode="side" class="app-sidenav">
    <md-nav-list>
      <div class="app-user-photo">
        <img class="round user" src="../assets/image.jpg" alt="">
      </div>
      <md-list>
        <md-list-item><i class="material-icons">Home</i><span>Home</span></md-list-item>
      </md-list>
    </md-nav-list>
  </md-sidenav>

  <md-toolbar color="primary">

    <button md-icon-button (click)="sidenav.toggle()">
      <md-icon class="md-24 material-icons">menu</md-icon>
    </button>

    <span class="topbar-spacer"></span>

    <button md-icon-button class="topbar-button-right">
      <md-icon class="md-24 material-icons">notifications</md-icon>
    </button>

    <button md-icon-button class="topbar-button-right">
      <md-icon class="md-24 material-icons">more_vert</md-icon>
    </button>

  </md-toolbar>

  <div class="app-content">
    Content area<br><br><br><br><br><br><br>
  </div>
</md-sidenav-container>

关于javascript - Angular 4/Angular Material 2 - Sidenav 未定义。组件声明不包含这样的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135946/

相关文章:

javascript - 我在 jQuery 中收到函数未定义错误,即使该函数已定义

javascript - 在尝试测试返回的数据之前,如何对 PhantomJS 进行编程以等待 AngularJS $resource 解析?

javascript - 从 Json 响应 javascript 创建 flexbox 列

css - 铁柔性布局 : not getting the proper layout

javascript - 如何将 Ajax 调用发送到 INPUT 值

javascript - 看起来提升正在使用 const 在 React Native 中工作

javascript - 为什么 "this"在回调函数中变为null?

angular - 在 Angular 8 中订阅 Observable 组件时遇到问题

Angular 2 尝试启动时缺少 domsanitizer

html - 以中心为中心的文字叠加图像