Я разрешу ID с трубой.Идентифицировать идентификатор в трубе с услугой
Я думаю, что это не лучший способ вызвать службу/api каждый раз?
Лучше ли хранить все страны раньше? Как я могу вернуть название страны внутри трубы?
обслуживание:
getCountry(id:number) {
return this._http.get(this.apiUrl + "/country/" + id).map(res => res.json());
}
трубы:
export class ResolvePipe implements PipeTransform {
constructor(public _formDataService: FormDataService) {}
transform(value: number, args: any[]): any {
this._formDataService.getCountry(value).subscribe(
data => console.log(data[0].name)
)
}
}
EDIT:
<tr (click)="showProfile(customer)" *ngFor="let customer of (customers | search:term)">
<td>...</td><td>{{customer.country_id | resolve | async}}</td>
</tr>
спасибо, работает, но это очень медленно. Что я могу сделать, чтобы ускорить работу? – robert
Трудно сказать отсюда, что медленно. Отвечает ли сервер с сервера на такое долгое время? Труба выполняется так часто, что она замедляет ваше приложение. Я не могу сказать отсюда. Вы можете хранить кеш в 'FormDataService', как описано в http://stackoverflow.com/questions/36271899/what-is-the-correct-way-to-share-the-result-of-an-angular-2- http-network-call-in –
Да, это называется около 1000 раз. Кэш должен решить эту проблему. – robert