Angular 通过eventEmmiter()关闭mat侧栏
我使用Angular 通过eventEmmiter()关闭mat侧栏,angular,angular-material,Angular,Angular Material,我使用材质侧栏显示移动菜单。 我想在单击菜单中的任何项目时关闭侧边栏 我通过EventEmmiter()函数发送,以关闭从子控制器到父控制器的侧栏 public onSidenavClose = () => { this.sidenavClose.emit(); }; 在app.component.html中,我这样设置 <mat-sidenav-container fxFlexFill> <mat-sidenav #sidenav (s
材质侧栏
显示移动菜单。
我想在单击菜单中的任何项目时关闭侧边栏
我通过EventEmmiter()
函数发送,以关闭从子控制器到父控制器的侧栏
public onSidenavClose = () => {
this.sidenavClose.emit();
};
在app.component.html中,我这样设置
<mat-sidenav-container fxFlexFill>
<mat-sidenav #sidenav (sidenavClose)="sidenav.close()">
<mat-nav-list>
<app-nav-item></app-nav-item>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content fxFlexFill>Main content</mat-sidenav-content>
</mat-sidenav-container>
您需要在stackblitz中调整已打开预览的大小以获取移动导航。您将事件发射器添加到错误的元素,请将(sidenavClose)=“sidenav.close()”
添加到应用导航项
<app-nav-item (sidenavClose)="sidenav.close()"></app-nav-item>
应用程序组件.ts
***
import { SidebarEventsService } from '../../sidebar-events.service';
***
constructor(private sidebarEventsService: SidebarEventsService) {}
***
onSidenavClose = () => {
this.sidebarEventsService.closeSidebarEvent.next();
};
***
import { SidebarEventsService } from './sidebar-events.service';
@ViewChild("sidenav", { static: false }) sidenav; // For angular 8 only
@ViewChild('sidenav') sidenav; // will be (static: false) by default from angular 9
constructor(private sidebarEventsService: SidebarEventsService) {
this.sidebarEventsService.closeSidebarEvent$.subscribe(() => this.sidenav.toggle());
}
请,sry我放错了网址,现在我编辑…请看一看。。。当我添加@ViewChild('sidenav')sidenav时
get error需要2个参数,但得到1个。
在angular 8中,需要另一个参数作为@ViewChild('sidenav',{static:false})
。快乐编码:)谢谢,谢谢。。。。请在您的回答中编辑@ViewChild(“sidenav”,{static:false})sidenav代码>
***
import { SidebarEventsService } from './sidebar-events.service';
@ViewChild("sidenav", { static: false }) sidenav; // For angular 8 only
@ViewChild('sidenav') sidenav; // will be (static: false) by default from angular 9
constructor(private sidebarEventsService: SidebarEventsService) {
this.sidebarEventsService.closeSidebarEvent$.subscribe(() => this.sidenav.toggle());
}