所以我一直在玩Angular 2一段时间了。在[(ngModel)]
中使用<input>
指令非常简单。然而,我无法弄清楚如何通过或至少获得之前的值,以便我可以比较它们 - 新旧两种。
我正在通过(ngModelChange)
获得更改检测,因为(change)
在输入字段模糊之后被激发(似乎是一个bug btw)。所以我的代码目前看起来像这样($event
可以看作占位符,因为我不知道要传递什么。)
<input [(ngModel)]="myModel" (ngModelChange)="changeEvent($event)">
我也试过传递一个自定义的本地模板变量,这显然不起作用:
<input [(ngModel)]="myModel" #myModel="ngModel" (ngModelChange)="changeEvent($event)">
我知道,使用DoCheck至少有可能实现这一目标。但是因为我只需要一次(目前)我真的不想使用那种方法。最重要的是,我在*ngFor
内部使用了上述构造。
答案 0 :(得分:6)
您可以使用以下内容:
HTML模板:
[(ngModel)]="myModel" #model (change)="changeEvent(model.value)"
Javascript处理程序:
changeEvent(newValue) {
console.log(newValue, this.myModel);
}
控制台将记录:
<newValue>, <oldValue>