作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
angular 4“无法读取未定义的属性'toggle'”,同时使用*ngIf="sidemenuu == true"到侧边菜单
侧菜单.html
<button mat-icon-button (click)="snav.toggle()" value="sidebarclosed">
<mat-icon>menu</mat-icon>
</button>
<span fxFlex></span>
<app-header></app-header>
</mat-toolbar>
<mat-sidenav-container class="example-sidenav-container"
[style.marginTop.px]="mobileQuery.matches ? 0 : 0">
<mat-sidenav #snav id="snav" class="dark-sidebar pl-xs"
[mode]="mobileQuery.matches ? 'side' : 'over'" fixedTopGap="0"
[opened]="mobileQuery.matches" [disableClose]="mobileQuery.matches"
*ngIf="sidemenuu == true" >
<app-sidebar ></app-sidebar>
</mat-sidenav>
<mat-sidenav-content class="page-wrapper">
<div class="page-content">
<router-outlet>
<app-spinner></app-spinner>
</router-outlet>
</div>
</mat-sidenav-content>
</mat-sidenav-container>
export class SideMenuComponent implements OnDestroy, AfterViewInit {
mobileQuery: MediaQueryList;
url = '';
public sidemenuu: boolean = false;
private _mobileQueryListener: () => void;
constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher,
location: Location, router: Router, public menuItems: MenuItems) {
this.mobileQuery = media.matchMedia('(min-width: 768px)');
this._mobileQueryListener = () => changeDetectorRef.detectChanges();
this.mobileQuery.addListener(this._mobileQueryListener);
router.events.subscribe((val) => {
this.url = location.path();
this.sidemenuu = true;
if (((this.url.indexOf('day')) > -1)) {
this.sidemenuu = false;
} else {
this.sidemenuu = true;
}
});
}
ngOnDestroy(): void {
this.mobileQuery.removeListener(this._mobileQueryListener);
}
ngAfterViewInit() {
}
}
at Object.eval [as handleEvent] (SideMenuComponent.html:40)
at handleEvent (core.js:13589)
at callWithDebugContext (core.js:15098)
at Object.debugHandleEvent [as handleEvent] (core.js:14685)
at dispatchEvent (core.js:10004)
at eval (core.js:10629)
at HTMLButtonElement.eval (platform-browser.js:2628)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4751)
at ZoneDelegate.invokeTask (zone.js:420)
最佳答案
由于您的按钮位于 mat-sidenav-container 的“外部”,因此您可以使用 ViewChild
//In component.ts
@ViewChild('sidenav') sidenav:any;
toggleSidenav()
{
this.sidenav.toggle();
console.log(this.sidenav.toggle);
}
//In your .html
<button mat-icon-button (click)="toggleSidenav()" value="sidebarclosed">
关于angular 4 "Cannot read property ' toggle' of undefined",同时使用 *ngIf ="sidemenuu == true"到侧边菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51076234/
我正在创建自己的网站。使用无序列表制作我自己的标题 + 导航栏。 我遇到的问题是标题没有延伸到浏览器的边缘。唯一可行的方法是在 css“header”中使用。 position:absolute; 我
我是一名优秀的程序员,十分优秀!