如何检测绑定属性的值在角度4中是否已更改

时间:2019-01-12 04:08:51

标签: angular

这是检测以@Input装饰的属性已更改的方式:

export class EmployeeComponent implements OnChanges {
  @Input() message: string;
  startDate: Date;

  ngOnChanges(changes: SimpleChanges) {
     for (let propName in changes) {  
        let change = changes[propName];
        if (propName === 'message') {
          //do something...
        }
     }
  }
}

这是标记

<app-date-picker [(model)]="startDate"></app-date-picker>

startDate 没有用@Input装饰,但是如果startDate的值发生变化,我想做些事情。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您可以按以下方式在日期选择器上使用(onChanged)事件,

<app-date-picker [(model)]="startDate" (onChanged)="onDateChanged()"></app-date-picker>

TS 中,

 onDateChanged() {
     access the changes here 
 }

答案 1 :(得分:1)

您可以这样做:

<app-date-picker [(model)]="startDate" (modelChange)='dateChanged($event)'></app-date-picker>

使用(modelChange)的原因很简单,[(model)]对变量bound使用两种方式的数据绑定。这样我就可以使用[model](modelChange)了。

@Sajeetharan提到了另一种方式。因此,选择您想要的任何一个。 让我知道这是否有效。