首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mat-sidenav sidenav.toggle()不工作

mat-sidenav sidenav.toggle()不工作
EN

Stack Overflow用户
提问于 2022-08-08 17:58:17
回答 1查看 284关注 0票数 0

我在垫子工具栏里有我的按钮。我们的期望是,我可以使用切换条隐藏并显示sidenav,但是这是不起作用的。sidenav将保持关闭状态,直到单击切换按钮。工具栏和sidenav容器位于同一个组件中。我在控制台中也没有任何错误。

nav.component.html

代码语言:javascript
复制
<mat-toolbar ngClass="transparent-nav">
    <div>
        <div class="nav-item-wrapper">
            <a mat-button [routerLink]="'/login'" ngClass="nav-item "> Login</a>
            <a mat-button [routerLink]="'/contact'" ngClass="nav-item nav-pill"> Select a plan </a>
        </div>
        <button mat-icon-button ngClass="btn-toggle-blue">
            <mat-icon (click)="sidenav.toggle()">
                menu
            </mat-icon>
        </button>
    </div>
</mat-toolbar>

<mat-sidenav-container>
    <mat-sidenav #sidenav mode="side"> 
        <div class="nav-item-side-wrapper">
            <a [routerLink]="'/login'" ngClass="nav-item "> Login </a>
            <a [routerLink]="'/contact'" ngClass="nav-item nav-pill-blue"> Select a plan </a>
        </div>
    </mat-sidenav>
    <!-- main content on the page to the right -->
    <mat-sidenav-content>
        <div ngClass="content">
            <router-outlet></router-outlet>
        </div>
    </mat-sidenav-content>
</mat-sidenav-container>

nav.component.ts

代码语言:javascript
复制
 @ViewChild(MatSidenav) sidenav !: MatSidenav;
EN

回答 1

Stack Overflow用户

发布于 2022-08-08 19:44:05

app.module.ts

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';

import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatListModule } from '@angular/material/list';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClientModule } from '@angular/common/http';
import { RouterModule } from '@angular/router';

@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    HttpClientModule,
    RouterModule,
    MatButtonModule,
    MatIconModule,
    MatInputModule,
    MatToolbarModule,
    MatSidenavModule,
    MatListModule,
    MatButtonModule,
    MatIconModule,
  ],
  declarations: [AppComponent, HelloComponent],
  bootstrap: [AppComponent],
})
export class AppModule {}

app.component.ts

代码语言:javascript
复制
import { Component, VERSION } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';

@Component({
  selector: 'app-component',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  title = 'Angular ' + VERSION.major; 

  constructor() {}
}

app.component.html

代码语言:javascript
复制
<mat-toolbar color="primary">
  <mat-toolbar-row>
    <button mat-icon-button>
      <mat-icon (click)="sidenav.toggle()">menu</mat-icon>
    </button>
    <h1>SimpleCRM</h1>
    <span class="menu-spacer"></span>
    <div>
      <a mat-button> Accounts </a>
      <a mat-button> Create Account </a>
      <a mat-button> Contacts </a>
      <a mat-button> Create Contact </a>
      <a mat-button> Activities </a>
      <a mat-button> Create Activity </a>
    </div>
  </mat-toolbar-row>

  <mat-toolbar-row>
    <span style="font-size: 12px;"
      >SimpleCRM helps you easily manage your contacts</span
    >
  </mat-toolbar-row>
</mat-toolbar>

<mat-sidenav-container>
  <mat-sidenav #sidenav>
    <mat-nav-list>
      <a mat-list-item> Accounts </a>
      <a mat-list-item> Create Account </a>
      <a mat-list-item> Contacts </a>
      <a mat-list-item> Create Contact </a>
      <a mat-list-item> Activities </a>
      <a mat-list-item> Create Activity </a>
      <a mat-list-item (click)="sidenav.toggle()" href="" mat-list-item
        >Close</a
      >
    </mat-nav-list>
  </mat-sidenav>
  <mat-sidenav-content>
    <div style="height: 88vh;">
      <!-- router outlet here -->
    </div>
  </mat-sidenav-content>
</mat-sidenav-container>

工作示例在这里

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

https://stackoverflow.com/questions/73282202

复制
相关文章

相似问题

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