複数の引数を持つ Angular 2 パイプを呼び出すにはどうすればいいですか? 質問する

複数の引数を持つ Angular 2 パイプを呼び出すにはどうすればいいですか? 質問する

次のようにパイプを呼び出すことができることはわかっています。

{{ myData | date:'fullDate' }}

ここで、日付パイプは引数を 1 つだけ取ります。コンポーネントのテンプレート HTML から、またはコード内で直接、より多くのパラメータを持つパイプを呼び出すための構文は何ですか?

ベストアンサー1

コンポーネントのテンプレートでは、コロンで区切って複数の引数を使用できます。

{{ myData | myPipe: 'arg1':'arg2':'arg3'... }}

コードは次のようになります。

new MyPipe().transform(myData, arg1, arg2, arg3)

パイプ内の変換関数では、次のような引数を使用できます。

export class MyPipe implements PipeTransform { 
    // specify every argument individually   
    transform(value: any, arg1: any, arg2: any, arg3: any): any { }
    // or use a rest parameter
    transform(value: any, ...args: any[]): any { }
}

ベータ 16 以前 (2016-04-26)

パイプはすべての引数を含む配列を受け取るので、次のように呼び出す必要があります。

new MyPipe().transform(myData, [arg1, arg2, arg3...])

変換関数は次のようになります。

export class MyPipe implements PipeTransform {    
    transform(value:any, args:any[]):any {
        var arg1 = args[0];
        var arg2 = args[1];
        ...
    }
}

おすすめ記事