【发布时间】:2016-05-09 17:03:39
【问题描述】:
我写了我自己的过滤管,因为它在 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));
}
}
并在我的模板中使用它:
<tr *ngFor="#singleCustomerData of customerData | myFilter:searchTerm">
...
</tr>
现在我想看看管道返回了多少匹配项。所以本质上是返回数组的大小。
在 Angular 1.x 中,我们能够将返回的集合分配给模板中的变量,如下所示:
<div ng-repeat="person in filtered = (data | filter: query)">
</div>
但是我们不能再在angular2的模板中分配变量了。
那么如何在不调用两次过滤器的情况下获得过滤集的大小呢?
【问题讨论】:
标签: filter typescript pipe angular