1. ホーム
  2. アンギュラー

[解決済み】Angular2の@Inputをget/setでプロパティに入力する。

2022-04-05 20:38:57

質問

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

解決方法は?

を設定することができます。 @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 .