选择路由器链接时关闭md-sidenav

Jas*_*ron 2 angular2-routing angular-material2

我正在做一个有角度的项目,我已经实现了诸如侧边导航这样的有角度的材质组件。side-nav具有ul li元素,其中的链接是嵌套的,而路由器链接不是href。我的问题是,当我选择一个链接转到另一个视图时,我想调用side nav来切换和关闭。因为它总是打开

Neh*_*hal 5

选项1:

您可以订阅Router事件,并在发生路由器事件时关闭sidenav。

码:

需要这些进口:

import { Component,ViewChild, OnInit, } from '@angular/core';
import { Router, RouterModule } from '@angular/router';
import { MdSidenav, MdSidenavModule } from '@angular/material';
Run Code Online (Sandbox Code Playgroud)

在组件类中:

@ViewChild(MdSidenav) sidenav: MdSidenav;

  title = 'Tour of Heroes';

  constructor(private appService: AppService, 
              private _router: Router){
  }

  ngOnInit() {
    this._router.events.subscribe(() => {
      this.sidenav.close();
    });
}
Run Code Online (Sandbox Code Playgroud)

演示

选项2:

click向每个事件添加一个事件,li以在单击关闭sidenav。

的HTML:

<ul class="sidenav">
  <li class="sidenav__list">
    <a class="sidenav__list__link " (click)="sidenav.close()" >about</a>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

演示2