我正在设计一个类似日历的表单。此表单有七个字段:日期和三对开始时间/结束时间。我想根据用户操作更新模型:
为了了解用户是否推迟或推迟了一段时间,我正在考虑比较变更之前和之后的时间。虽然我能够在更改之后检索值,但我仍然找不到在更改之前检索值的方法。
@Input
,因此我无法收听NgOnChanges
。(change)
的{{1}}事件,但事件在模型更改后被触发,而<input>
对象只携带新值(至于我知道。)$event
的{{1}},但事件只带有那么,有没有办法知道哪个字段发生了变化,从哪个值变为什么值?
答案 0 :(得分:0)
使用Angular反应形式。您可以将所有控件添加到窗体组,然后侦听每个控件的valueChanges事件。 valueChanges将提供新的价值。至于旧值,可以在页面加载并设置此表单时将值保存在变量中。当valueChanges触发时,您可以将旧值与新值进行比较。例如。
this.calendarForm = new FormGroup({
startTime: new FormControl('<current value>')
}),
});
this.currentStartTime = this.calendarForm.get('startTime').value;//existing value
this.calendarForm.get('startTime').valueChanges.(newValue => {
if ((newValue !== this.currentStartTime)
//do something
}
});