Ich verwende angular 4 in Kombination mit angular material.Wie kann ich Material SideNav schließen, indem ich auf ein Element mit der RouterLink-Anweisung klicke?
Ich verwende einen sidenav Container einen Router und ein benutzerdefinierten erzeugte Menü:
<mat-sidenav-container>
<mat-sidenav #sidenav>
<app-menu></app-menu>
</mat-sidenav>
<router-outlet></router-outlet>
</mat-sidenav-container>
Innerhalb der Menükomponente I Standard-Winkel 4 Router-Links sind mit:
<ul>
<li *ngFor="let hero of heroes">
<a mat-button [routerLink]="['/hero/', hero.id]" queryParamsHandling="merge">
{{hero.name}}
</a>
</li>
</ul>
Was würde Ich mag an Schließen Sie die Material sidenav
, wenn Sie auf einen dieser Router-Links klicken.
Ich kann Ihnen versichern, dass ohne die Click-Event-Routing funktioniert gut, es schließt nur nicht mein Sitenav, weil der Router-Ausgang in der seitlichen Navigation ist.
Allerdings, wenn ich eine (click)="sidenav.close()"
zu der a
meine ganze Seite plötzlich aktualisiert, anstatt nur die Router-Link folgen.
Ich habe viele Dinge ausprobiert, aber ich kann es nicht scheinen, hoffe jemand kann helfen!
Danke für die Antwort, ich hatte gehofft, es wäre viel einfacher –
Ich habe meine eigene Antwort inspiriert auf Ihrem Link hinzugefügt. Nur um ein paar echte Codebeispiele zu SO zu haben. Welche denkst du, Antwort ist die Frage besser? –