html - Angular 4 bir <td> içinde bir fonksiyon çağırma


Elimde bu kod parçası var:

personListComponent.html

<tr *ngFor="let person of personService.getPersons()">
      <td (onShow)="getCountry(person)">{{person.name}}</td>
      <td>{{country}}
</tr

personListComponent.ts

country : string = '';

getCountry(person : Person){
  this.country = this.countryservice.getCountry(person.countryid);
}

Kişiden ülkeyi almak ve tabloya göstermek istiyorum, ancak (onShow) hiç getCountry() fonksiyonunu çağırmıyor. Bu fonksiyonu <td> elementi içinde çağırmanın bir yolu var mı? Veya ülkeyi göstermek için herhangi bir yol var mı?

Cevap #1

ngShow kullanmadan, bir fonksiyonu td içinde doğrudan şu şekilde değerlendirebilirsiniz,

<tr *ngFor="let person of personService.getPersons()">
      <td>{{person.name}}</td>
      <td>{{getCountry(person) | async}}
</tr>

ve fonksiyon olarak

getCountry(person : Person){
  return  this.countryservice.getCountry(person.countryid);
}