2017-05-24 13 views
-1

ngForの間にclickを使用して関数呼び出しを出力しようとしています。私はそれをどのように参照するか分からない。Angular2 onclick in ngfor

私はangualr2の新機能です。これを実現する正しい方法がわからない場合は、私は助言に感謝します。より良い方法である

export class Navbar { 

    constructor() {} 

    public userNavs = [ 
     { title: 'Account', click: 'account()' }, 
     { title: 'Logout', click: 'logout()' } 
    ] 

    logout() { 
     console.log('working'); 
    } 

    account(){ 
     console.log('working'); 
    } 

    ngOnInit() {} 
} 

////HTML//// 

<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="userdropdown">    
    <li *ngFor="let nav of userNavs" ><a class="dropdown-item btn-sm" (click)="{{ nav.click }}" >{{ nav.title }}</a></li> 
</ul> 
+0

それはあなたの説明とあなたが達成しようとしているどのようなコードから本当に不明だが、それは混乱のように見えます。 –

+1

出力プロパティ '(クリック)'内で補間を使用しないでください – yurzui

答えて

1

export class Navbar { 

    constructor() {} 

    public userNavs = [ 
     { title: 'Account', click: 'account()' }, 
     { title: 'Logout', click: 'logout()' } 
    ] 

    eventClick(userNav){ 
     if('Account') this.account(); 
     else this.logout(); 
    } 

    logout() { 
     console.log('working logout'); 
    } 

    account(){ 
     console.log('working account'); 
    } 

    ngOnInit() {} 
} 

////HTML//// 

<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="userdropdown">    
    <li *ngFor="let nav of userNavs" ><a class="dropdown-item btn-sm" (click)="eventClick(nav)" >{{ nav.title }}</a></li> 
</ul> 
+0

これはもっと良く見えます!ありがとう – user1019416