avec tuyau d'custume appel HTTP en valeur angulaire 6 ne pas retourner

voix
0

J'ai fait une coutume tuyau dans 6 angulaire avec identifiant prend comme paramètre et retourner nom après serveur d' appel (appel http)

suit mon code de conduite

import { Pipe, PipeTransform } from '@angular/core';
import { AjaxService } from '@shared/services/ajax.service';
import { activities } from '@shared/constants/activity.constant';
@Pipe({
name: 'getName'
})
export class GetNamePipe implements PipeTransform {
constructor( private serviceManager: AjaxService,){

}
transform(value: any): any {
 if(!value )
return value;
 // return 'a';  // this work perfectly

this.serviceManager.getByParams(activities.getEducatorAndSupervisorName, 
{id:value}).subscribe(
    response => {
      if(response.status==1){
      console.log(response.data)

       return response.data.name;  // i want to return this.

      }
      else
      {

      }
    },
    error => {
        console.log(error)

    }
   )
 }

}

et l'utiliser de cette façon

 <td>{{it.createdByUser.id | getName }}</td>
Créé 19/12/2018 à 14:12
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Si la fonction que vous utilisez pour obtenir votre valeur est asynchrone, vous devez utiliser un AsyncPipe.

https://angular.io/guide/pipes#the-impure-asyncpipe

En ce moment, vous retournez response.data.nameuniquement pour la fonction qui souscrit à la réponse. Ce n'est pas le même que le retour de la réelle transform()fonction. Sur le cadre de code qui exécute la fonction angulaire de la conduite, il ne peut pas obtenir le résultat de la requête asynchrone - qui va prendre le temps de revenir.

Créé 19/12/2018 à 14:15
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more