2017-04-17 3 views
1

Ich habe diese Klasse:Filter ngFor Schleife in Angular 2

export class Tache { 
     id: number; 
     text: string; 
     stat: number; 
} 

Stat konnte gleich 0, 1 oder 2.

Ich würde taches drucken, wenn stat = 0, ich versuche, machte es mit Filter

<md-list *ngFor="let tache of taches | filter : 'tache.stat' : '0'" (click)="onSelect(tache)" [class.selectionnee]="tache === tacheSelectionnee"> 

Aber ich bekomme diese Fehlermeldung:

zone.js:569 Unhandled Promise rejection: Template parse errors: 
The pipe 'filter' could not be found (" 

Antwort

2

Sie benötigen keinen Filter. Unterteilen Sie die Logik, indem Sie sie mit einer Vorlage umbrechen. Verwendung ng-Vorlage für Angular 4.

<template *ngFor="let tache of taches"> 
    <md-list *ngIf="tache.stat==0" 
      (click)="onSelect(tache)" 
      [class.selectionnee]="tache === tacheSelectionnee"> 
    </md-list> 
    </template> 
2

Der Filter/Rohr namens 'Filter' von Angular1.x existiert nicht in Angular2, weshalb Ihr Code diesen Fehler zu werfen.

Hier finden Sie eine Anleitung, wie sich Rohre/Filter in Angular2 geändert haben.

Sie könnten Ihre eigene benutzerdefinierte Rohr für diese, wenn Sie wollten, aber ich stimme mit Dan oben - brechen Sie die Logik mit einer Vorlage.