2016-08-21 3 views
0

나는 다음과 같은 JSON 객체있다 : 내 countries.component.ts 각 국가 (타이프 라이터) 구성 요소 파일에 정의 된 기능을 가지고클릭 이벤트를 각도 2의 함수에 바인딩하려면 어떻게해야합니까?

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

을 :

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

은 가정하자 나는 ngFor에서이 json으로 object.I을 반복 같은 방법으로 클릭 이벤트를 바인딩 할 수 있도록하려면 내 구성 요소 템플릿 :

<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

관련 문제