2017-02-13 2 views
1

Je vais utiliser un tuyau pour filtrer certains JSON et afficher le nom basé sur la valeurangulaire 2 Tubes De Filtré JSON

c'est mon JSON

bankAccountUsage = [ 
 
    { value: 1, name: "x" }, 
 
    { value: 2, name: "y" }, 
 
    { value: 3, name: "z" } 
 
    ];

c'est le TUYAU:

import { Pipe, PipeTransform } from '@angular/core'; 
 
import { StaticValuesService } from '../../services/static-values.service'; 
 
import { } from '../../services/static-values.service'; 
 

 
@Pipe({ 
 
    name: 'accountUsageType' 
 
}) 
 
export class AccountUsageTypePipe implements PipeTransform { 
 
    private Accounusages; 
 
    transform(value: number, args?: any): any { 
 
     this.Accounusages.filter(val => { 
 
     if (val.value === value) { 
 
     console.log(val); 
 
     return val.name; 
 
     } 
 
     
 

 
    }); 
 
    } 
 
    
 
    constructor(private _statcvalues: StaticValuesService) { 
 
    this.Accounusages = this._statcvalues.bankAccountUsage; 
 
    
 
    } 
 

 
}

ceci est le résultat de Console.log (val)

Object {value: 1, name: "x"} 

HTML:

 <td>{{account.AccountType | accountUsageType}}</td>

mais le résultat est vide

grâce

+0

si je mets retourner là-bas ce que je reçois '[object Object]' –

Répondre

1
  1. Il vous manque l'instruction ;
  2. Votre value est une variable primitive, donc, le tuyau doit retour, bien sûr, un seul variable. Vous pouvez utiliser la méthode Array#find, comme ci-dessous:
return this.Accounusages.find(val => val.value === value); 
+0

si je mets y retourner c'est ce que je reçois objet [objet ] –

+0

c'est le Json '{valeur: 1, nom:" x "}' donc je crois que val.name est correct –

+0

Vérifiez la version d'édition. – developer033