web-dev-qa-db-fra.com

Fonction d'appel Angular2 lorsque l'entrée change

Composant enfant:

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

Composant parent:

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

Vue parent:

<child [value]="value2">

Existe-t-il un moyen d'appeler childFunction () chaque fois que la valeur2 est modifiée dans cette structure?

21

Vous pouvez utiliser la ngOnChanges()hook de cycle de vie

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

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

ou utilisez un setter

export class Child {
    @Input() 
    public set value(val: string) {
      this._value = val;
      this.childFunction();
    }
    public childFunction(){...}
}
36
Günter Zöchbauer