web-dev-qa-db-ja.com

入力が変更されたときのAngular2呼び出し関数

子コンポーネント:

export class Child {
    @Input() public value: string;
    public childFunction(){...}
}

親コンポーネント:

export class Parent {
    public value2: string;
    function1(){ value2 = "a" }
    function2(){ value2 = "b" }
}

親ビュー:

<child [value]="value2">

この構造でvalue2が変更されるたびにchildFunction()を呼び出す方法はありますか?

21

ngOnChanges()lifecycle hook を使用できます

export class Child {
    @Input() public value: string;

    ngOnChanges(changes) {
      this.childFunction()
    }
    public childFunction(){...}
}

またはセッターを使用する

export class Child {
    @Input() 
    public set value(val: string) {
      this._value = val;
      this.childFunction();
    }
    public childFunction(){...}
}
36