html - Angular 4 anropa en funktion inom en <td>


Jag har den här biten av kod:

personListComponent.html

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

personListaKomponent.ts

country : string = '';

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

Jag vill hämta landet från personen och visa det i tabellen, men (onShow) anropar aldrig getCountry()-funktionen. Finns det ett sätt att anropa denna funktion från inom <td>-elementet? Eller något sätt att visa landet?

Svar #1

Utan att använda ngShow kan du direkt utvärdera en funktion inne i td som följer,

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

och funktionen som

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