2016-09-05 14 views
11
składnik

dziecko:Angular2 wywołanie funkcji, gdy wejście Zmienia

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

składnik nadrzędny:

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

widok nadrzędny:

<child [value]="value2"> 

Czy istnieje jakiś sposób, aby wywołać childFunction() każdy czas wartość 2 jest zmieniona w tej strukturze?

Odpowiedz

19

Można użyć ngOnChanges()lifecycle hook

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

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

lub użyć seter

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

W pierwszej metodzie, możemy określić, które zmienne są zmieniane? –

+1

Parametr 'changes' zawiera wpis dla każdego zmienionego wejścia. Aby uzyskać więcej informacji, zapoznaj się z łączem "Lifecycle hook" powyżej. –

+2

To działało dobrze, dziękuję bardzo! –

Powiązane problemy