在Angular 6中,可以使用ngOnChanges
生命周期钩子来判断哪个模型值被修改了。ngOnChanges
会在输入属性的值发生变化时被调用。
下面是一个示例代码:
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent implements OnChanges {
@Input() model1: string;
@Input() model2: string;
ngOnChanges(changes: SimpleChanges) {
for (let propName in changes) {
if (changes.hasOwnProperty(propName)) {
console.log(propName + ' changed. New value: ' + changes[propName].currentValue);
}
}
}
onInputChange(propName: string, newValue: any) {
console.log(propName + ' changed. New value: ' + newValue);
}
}
在上面的示例中,有两个输入属性model1
和model2
,它们都绑定到两个输入框中。当输入框的值发生变化时,会调用onInputChange
方法,并传递属性名称和新值作为参数。
在ngOnChanges
方法中,我们使用SimpleChanges
对象来获取所有发生变化的属性,并打印出新值。通过这种方式,我们可以判断哪个模型值被修改了。
请注意,ngOnChanges
只能检测到@Input
属性的变化,如果要检测非@Input
属性的变化,可以使用ngDoCheck
生命周期钩子。