2017-05-05 113 views
0

我的應用程序中有一個角度4材質Sidenav,它有一堆按鈕,其中一些調用函數,其他的路由到其他頁面。關閉任何按鈕上的角度材料sidenav點擊裏面

除了每個按鈕都調用相同的函數,然後查找要調用哪個函數(就像發送參數中的開關一樣),是否有內置的方法讓sidenav關閉子按鈕?

這裏的sidenav的樣子:

<md-sidenav #sidenav align="end"> 
    <br/> 
    <span style="margin: 17px">{{auth?.userProfile?.name}}</span> <br /> 
    <button md-button routerLink="/spells"> All Spells </button> <br /> 
    <button md-button (click)="login()" *ngIf="!auth.authenticated()">Log In</button> 
    <button md-button routerLink="/spellbook" *ngIf="auth.authenticated()"> My Spellbooks </button> <br /> 
    <button md-button (click)="auth.logout()" *ngIf="auth.authenticated()">Log Out</button> 
</md-sidenav> 
+0

關閉側導航,你可以可視化的UI。你的代碼是什麼樣的? – Aravind

+0

當然,我編輯添加sidenav的代碼。正如你所看到的,有四個按鈕,其中兩條路線,其中兩條調用函數。我想讓所有人點擊時關閉sidenav –

回答

0

我建議你用兩種方式。

1.處理按鈕的點擊事件,並在組件中有你的邏輯。

<button md-button (click)="routeToSpells()"> All Spells </button> <br /> 
<button md-button (click)="login()" *ngIf="!auth.authenticated()">Log In</button> 
<button md-button (click)="reouteToSpellBook()" *ngIf="auth.authenticated()"> My Spellbooks </button> <br /> 
<button md-button (click)="logout()" *ngIf="auth.authenticated()">Log Out</button> 



routeToSpells(){ 
    this.sidenav.close(); 
    this.router.navigat('...') 
} 

login(){ 
    this.sidenav.close(); 
    ..... 
} 
reouteToSpellBook(){ 
    this.sidenav.close(); 
    this.router.navigat('...') 
} 

logout(){ 
    this.sidenav.close(); 
    this.auth.logout 
} 

或者實現的OnDestroy()中的子組件,並在任何原因