2016-08-21 118 views
0

我有以下JSON對象:如何將點擊事件綁定到角度爲2的函數?

{Countries: [America, China, Russia, etc]} 

我在我的countries.component.ts(打字稿)爲每個國家組件文件中定義的函數:

... 
America() { ... } 
China() { ... } 
Russia() { ... } 
etc 

假設我有一個ngFor我的組件模板遍歷JSON對象。我希望能夠以這種方式綁定點擊事件:

<ul *ngFor="let country of Countries"> 
    <li> 
    <a (click)="{{country}}()" >{{country}}</a> 
    </li> 
</ul> 

當我點擊「美國」它將會調用「America()」函數。

是否有綁定一個點擊事件動態函數名(即使該功能在相應的組件類(即美國,中國,俄羅斯等靜態定義的方式被定義)?

謝謝。提前爲您的答覆

回答

1

插值似乎不工作,你嘗試過的方式 一個可能的解決問題的方法是給函數的自變量中*ngFor

代碼:

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'my-app', 
    template: ` 


    <ul *ngFor="let x of countries"> 
    <li> 
    <a (click)="doThis(x)" >{{x}}</a> 
    </li> 
</ul> 

    ` 
}) 
export class AppComponent { 
    constructor(){console.clear()} 



    public countries:any[]= ['America','China', 'Russia', 'Germany'] 



    doThis(x){ 


    console.log('life is life in '+ x) 
    } 



} 

Plunker

相關問題