2017-01-28 4 views
1
import {Pipe} from '@angular/core'; 

Nach der Verwendung value.filter gibt es Wert. Filter ist nicht Funktion Fehler.Wie benutzt man den angular2-Array-Filter?

Hier ist mein Code-Schnipsel Search.pipe.ts

@Pipe({ 
 
    name: 'search' 
 
}) 
 

 
export class Search { 
 
    transform(value, args) { 
 
     console.log("value"+JSON.stringify(value)); 
 
     console.log("args"+JSON.stringify(args)); 
 
     return value.filter(value => value.attendee_nm.indexOf(args) !== -1); 
 
    } 
 
}

+0

Sie geben wahrscheinlich den falschen Wert an Ihre Pipe weiter. Können Sie den Teil des Codes anzeigen, in dem Sie die Pipe verwenden? – AngularChef

+0

FYI, [Array.filter()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) ist einfaches JavaScript. Es hat nichts mit Angular zu tun. – AngularChef

Antwort

0

Zuerst müssen Sie dies implementiert PipeTransform zu arbeiten. Value.filter ist eine Funktion, wenn Ihr Wert vom Typ Array ist, da der Filter nur für den Array-Typ existiert.

+1

Ich zuerst aber, dass PipeTransform notwendig ist, anscheinend nicht nach: https://angular.io/docs/ts/latest/guide/pipes.html: * Die PipeTransform-Schnittstelle definiert diese Methode und führt Werkzeuge und den Compiler. Es ist technisch optional; Angular sucht und führt die Transformationsmethode unabhängig aus. * :) – Alex

+1

danke für die info.i war unter der Vorstellung, dass die Transformationsmethode aus der Pipe-Transformation interface.good zu wissen ist angular 2 behandelt es intern –

+1

in Bezug auf Ihr Problem ist Wert, den Sie übergeben ist ein Array-Typ? –