Angular2 @Input を get/set でプロパティに入力する 質問する

Angular2 @Input を get/set でプロパティに入力する 質問する

そのコンポーネントにはAngular2コンポーネントがあり、そのコンポーネントには現在、そのプロパティへのバインドを可能にするために@Input()が適用されたフィールドがたくさんあります。

@Input() allowDay: boolean;

私がやりたいのは、get/setでプロパティにバインドして、次のようなセッターで他のロジックを実行できるようにすることです。

_allowDay: boolean;
get allowDay(): boolean {
    return this._allowDay;
}
set allowDay(value: boolean) {
     this._allowDay = value;
     this.updatePeriodTypes();
}

Angular2 でこれをどうやって行うのでしょうか?

Thierry Templier の提案に基づいて次のように変更しましたが、既知のネイティブ プロパティではないため、「allowDay」にバインドできないというエラーが発生します。

//@Input() allowDay: boolean;
_allowDay: boolean;
get allowDay(): boolean {
    return this._allowDay;
}
@Input('allowDay') set allowDay(value: boolean) {
    this._allowDay = value;
    this.updatePeriodTypes();
}

ベストアンサー1

@Input以下のように、セッター上で直接設定することもできます。

_allowDay: boolean;
get allowDay(): boolean {
    return this._allowDay;
}
@Input() set allowDay(value: boolean) {
    this._allowDay = value;
    this.updatePeriodTypes();
}

このPlunkrをご覧ください:https://plnkr.co/edit/6miSutgTe9sfEMCb8N4p?p=preview

おすすめ記事