2017-03-29 2 views
0

Wir haben eine Entität namens operator, die eine Beziehung mit einer Entität namens country hat. Wir möchten eine Operatorliste basierend auf dem Ländernamen filtern. Wie können wir diesen Filter vom Operator schreiben? Was ist die korrekte Syntax?Angular 2 Korrekte Syntax

html:

[(ngModel)]="opFilter.country?.name" 

ts:

opFilter: any = { country?.name : '' }; 

Antwort

0

Was Sie erreichen wollen kann getan werden, ein einfaches pipe verwenden.

@Pipe({ name: 'countryFilter' }) 
export class CountryFilterPipe implements PipeTransform { 

    transform(operators: Operator[], countryName) { 
    return operators.filter(operator => operator.country === countryName); 
    } 
} 

und binden es in der Vorlage wie folgt aus:

<h2 *ngFor="let op of operators | countryFilter: country">{{op.name}}</h2> 

Wo country eine Eigenschaft ist wollen den Namen des Landes Sie enthält filtern.

Hier ist eine vollständige Demo: https://plnkr.co/edit/GTP6P0PCDudH3NmWkkJf?p=preview

+0

ich diese beide auf Vorlage Seite versucht haben, aber ich

+0

können Sie bitte das erwartete Ergebnis zu Ihrer Frage hinzufügen? Ich werde meine Antwort so umformatieren, dass sie dem erwarteten Ergebnis entspricht. – Supamiu

+0

wir wollen die Liste der Betreiber in speziellen Ländern anzeigen. Also haben wir diesen Filter hinzugefügt: Der Benutzer gibt den Namen des Landes ein (Beispiel: Frankreich) und die Liste der französischen Benutzer wird angezeigt. Dies ist meine Datei operator.model.ts: –