gesetzt bekommen, schrieb ich mein eigenes Filterrohr, wie es in angular2 verschwunden:Wie die Größe eines gefilterten (verrohrt) in angular2
import {Pipe, PipeTransform} from 'angular2/core';
@Pipe({
name: 'myFilter'
})
export class MyFilter implements PipeTransform {
transform(customerData: Array<Object>, args: any[]) {
if (customerData == undefined) {
return;
}
var re = new RegExp(args[0]);
return customerData.filter((item) => re.test(item.customerId));
}
}
Und es in meiner Vorlage verwenden:
<tr *ngFor="#singleCustomerData of customerData | myFilter:searchTerm">
...
</tr>
Jetzt würde ich gerne sehen, wie viele Übereinstimmungen die Pipe zurückgibt. Also im Wesentlichen die Größe des zurückgegebenen Arrays.
In Winkel 1.x waren wir in der Lage, so weisen Sie die auf eine Variable in einer Vorlage wie so zurückgegeben:
<div ng-repeat="person in filtered = (data | filter: query)">
</div>
Aber wir können nicht mehr zuweisen Variablen in Vorlagen in angular2.
Also wie bekomme ich die Größe des gefilterten Sets, ohne den Filter zweimal aufzurufen?
Im Winkel> = 4 Abschnitt, wissen Sie, wie können wir es außerhalb der Verwendung * Block ngFor? In meinem Fall muss ich diese Nummer in einer anderen Logik verwenden. –
Ich glaube nicht, dass es eine Möglichkeit gibt, dies in der Vorlage zu tun. Sie müssen den Filter im Komponentencode ausführen und die Länge einem Feld zuweisen, um sie in der Vorlage verfügbar zu machen. –