3

所以我一直在玩 Angular 2 一段时间了。在 an 中使用[(ngModel)]指令<input>非常简单。但是我不知道如何通过或至少获得以前的值,所以我可以比较两者 - 新的和旧的。

(ngModelChange)自从输入字段模糊后启动以来,我正在通过更改检测(change)(顺便说一句,这似乎是一个错误)。所以我的代码目前看起来像这样($event可以看作是一个占位符,因为我不知道要传递什么)。

<input [(ngModel)]="myModel" (ngModelChange)="changeEvent($event)">

我也尝试过像这样传入一个自定义的本地模板变量,这显然也不起作用:

<input [(ngModel)]="myModel" #myModel="ngModel" (ngModelChange)="changeEvent($event)">

我知道,至少有可能通过使用DoCheck来实现这一点。但是因为我只需要一次(目前)我真的不想使用那种方法。最重要的是,我在*ngFor.

4

1 回答 1

6

您可以使用以下内容:

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

Javascript处理程序:

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

控制台将记录:

<newValue>, <oldValue>

于 2016-12-26T21:59:26.370 回答