angular2 @input - 更改检测

gka*_*gka 13 data-binding typescript angular

有没有办法听@Input改变?

在下面的示例中,我希望每当"inputData"值更改时都会收到通知.

@Input() inputData: InputData;
Run Code Online (Sandbox Code Playgroud)

Ste*_*ota 18

是的,你可以使用OnChanges生命周期事件:

@Input() inputData: InputData;

ngOnChanges() {
    console.log(this.inputData);
}
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关Angular生命周期事件的更多信息.


yal*_*esh 18

import { Component, Input, OnChanges, SimpleChange } from '@angular/core';


export class Demo implements OnChanges {

 @Input() inputData: InputData;
 ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {

    if (changes['inputData'] && this.inputData) {

        //your logic work when input change
    }
 }

}
Run Code Online (Sandbox Code Playgroud)


Ami*_*ash 6

你可以使用类似的东西:

Input('value')
set value(val: string) {
  this._value = val;
  console.log('new value:', value); // <-- do your logic here!
}
Run Code Online (Sandbox Code Playgroud)

链接提供更多信息

你也可以看看这篇文章