angular - Resolve id in pipe with a service -


i resolve id pipe.

i think isn't best way call service/api every time?

is better store countries before? how return country name within pipe?

service:

getcountry(id:number) {    return this._http.get(this.apiurl + "/country/" + id).map(res => res.json()); } 

pipe:

export class resolvepipe implements pipetransform {   constructor(public _formdataservice: formdataservice) {}   transform(value: number, args: 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> 

first need return observable. when call subscribe() subscription returned. need return transform() hence added return

export class resolvepipe implements pipetransform {   constructor(public _formdataservice: formdataservice) {}   transform(value: number, args: any[]): {     // added `return` , changed `subscribe` `map`     return this._formdataservice.getcountry(value).map(       data => {         console.log(data[0].name);         return data; // `{ }` explicit `return` required       });     )   } } 

then can use pipe like

<div>{{someid | myidpipe | async}}</div> 

or

<some-comp [idprop]="someid | myidpipe | async></some-comp> 

the async pipe subscribes observable returned transform , uses resulting value binding.


Comments

Popular posts from this blog

python - How to insert QWidgets in the middle of a Layout? -

python - serve multiple gunicorn django instances under nginx ubuntu -

module - Prestashop displayPaymentReturn hook url -