2017-07-27 2 views
0

Ich habe eine Pipe erstellt, um ein Objektarray basierend auf dem Wert der Objekteigenschaft zu sortieren. Alle Objekte mit der Eigenschaft show==0 und show==1 werden entfernt, es gibt keinen Fehler und kann in der Konsole angezeigt werden.Warum funktioniert die Rohrleitung nicht?

pipe.ts

@Pipe({ 
    name: 'menufilter' 
}) 
@Injectable() 
export class MyMenuFilterPipe implements PipeTransform { 
    transform(items: any[], args: any[]): any { 
     if (items) { 
      return items.filter(item => item.show == '0',console.log(item)); 
     } 
    } 

app.html

<tr *ngFor="let menu of specificmenus|menufilter" > 
    <td >{{menu.name}}</td> 
</tr> 
+0

Sind Sie sicher, dass die '.show' -Eigenschaft eine Zeichenfolge ist und keine Nummer? Es gibt einen großen Unterschied zwischen "0" und "0" – CozyAzure

+0

@CozyAzure Sein 32-Bit-Intiger, ich bekomme das gleiche Ergebnis in der Konsole bei Verwendung von "0" und 0 – Ajith

+0

Könnten Sie das Problem in einem Plunker reproduzieren? Basierend auf dem, was ich sehe (und versuchte Ihren Code) sollte es gut funktionieren :) – Alex

Antwort

0

Weil du nichts

transform(items: any[], args: any[]): any { 
    if (items){ 
     return items.filter(item =>{ 
     console.log(items) 
     return item.show=='0'; 
     }) 
     } 
    } 
+0

Immer noch nicht funktioniert – Ajith

+1

wenn Sie seine Syntax richtig betrachten; er hat den Wert zurückgegeben. Fette Pfeilnotationen erfordern das 'return' Schlüsselwort, wenn Sie die geschweiften Klammern nicht haben. Allerdings wird es keinen Effekt von ihm geben, die console.log als zweites Argument im Callback zu übergeben – CozyAzure

0

Remove“, console.log (Artikel) zurückkehr "Und versuche es erneut!

Verwandte Themen