1

パイプ フィルターに値を渡すときに問題が発生しました。コンポーネントから pagex という変数の形式で引数値を渡す必要がありますが、それを機能させるための構文が見つかりません... または何か不足しています。助けてくれてありがとう。

myComponent

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));
    }
}

}

4

2 に答える 2