ho scritto il mio tubo di filtro come è sparito in angular2:Come ottenere le dimensioni di un filtrato (pipe) impostato 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));
}
}
e usarlo nel mio modello:
<tr *ngFor="#singleCustomerData of customerData | myFilter:searchTerm">
...
</tr>
Ora mi piacerebbe vedere quante corrispondenze ritorna la pipa. Quindi essenzialmente la dimensione dell'array restituito.
In 1.x angolare siamo stati in grado in modo da assegnare il restituite impostata su una variabile in un modello in questo modo:
<div ng-repeat="person in filtered = (data | filter: query)">
</div>
Ma non si può più assegnare le variabili nei modelli in angular2.
Quindi, come si ottiene la dimensione del set filtrato senza chiamare il filtro due volte?
Nel angolare> = 4 sezione, sai come possiamo utilizzarlo al di fuori del * ngFor bloccare? Nel mio caso devo usare quel numero in un'altra logica. –
Non penso che ci sia un modo per farlo nel modello. Dovrai eseguire il filtro nel codice dei componenti e assegnare la lunghezza a un campo per renderlo disponibile nel modello. –