将值传递给我的管道过滤器时遇到问题。我需要从我的组件中以名为 pagex 的变量的形式传递一个参数值,但我找不到使它工作的语法……或者我遗漏了一些东西。谢谢您的帮助。
我的组件
export class ItemsComponent {
items:any[]
pagex:number;
constructor(private ItemService:ItemService){
this.ItemService.getItems()
.subscribe(items =>{
this.items=items;
this.pagex=2;
});
}
以下手动传递值有效:
<div *ngFor="let item of items| myfilter: '2'">
而这并没有,已经尝试了很多组合......
<div *ngFor="let item of items| myfilter: {{pagex}}">
<div *ngFor="let item of items| myfilter: '{{pagex}}'">
<div *ngFor="let item of items| myfilter: {{pagex.toString()}}">
<div *ngFor="let item of items| myfilter: pagex>
<div *ngFor="let item of items| myfilter:'pagex'>
我的管道
@Pipe({
name: 'myfilter',
})
export class MyFilterPipe implements PipeTransform {
transform(items: any[], args: any[]): any {
if(items!=undefined){
console.log(args[0])
var maxItems = 5;
var start_index= (args[0]*maxItems)-maxItems-1;
var end_index= args[0]*maxItems;
return items.filter((item, index) => (index > start_index) && (index <end_index));
}
}
}