Angular 2 ngModel比较旧值和新值

时间:2016-12-26 21:49:27

标签: angular angular2-ngmodel

所以我一直在玩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内部使用了上述构造。

1 个答案:

答案 0 :(得分:6)

您可以使用以下内容:

HTML模板: [(ngModel)]="myModel" #model (change)="changeEvent(model.value)"

Javascript处理程序:

changeEvent(newValue) {
  console.log(newValue, this.myModel);
}

控制台将记录:

<newValue>, <oldValue>