如何在角度4的(输入)事件中获取先前的值

时间:2018-08-16 06:46:49

标签: html angular typescript

我正在尝试添加值,并且还需要通过与新值进行比较来删除以前的值。

 var  total = [];
 onSearchChange(event) {
    total.push(event);
    var sumNumber = total.reduce(
      (acc, cur) => acc + Number(cur),
      0
    );
    console.log("get all the changed value, I need to remove the previous values in the total list");
  }
 <input type='number' (input)="onSearchChange($event.target.value)" />

1 个答案:

答案 0 :(得分:0)

我不知道事件本身是否保留先前的值。您可以创建一个组件属性来保存先前的值,并在每个input事件中对其进行设置。

<input id="inputId" type="number" value=23 (input)="foo($event.target.value)">
// have some default value only if you want

previousValue: number

foo(value) {
    console.log("previous value ", this.previousValue);
    console.log("new value ", value);
    this.previousValue = value
}

ngAfterViewInit() {
    this.previousValue = parseInt((<HTMLInputElement>document.getElementById('inputId')).value)
}

https://stackblitz.com/edit/angular-ufd15s?file=src%2Fapp%2Fapp.component.ts

您还可以在keydown元素上添加一个辅助事件侦听器input(似乎没有必要,只是在说)。 keydown会在input之前出现,因此使用keydown可以获取先前的值。 https://stackblitz.com/edit/angular-sjxvgp?file=src%2Fapp%2Fapp.component.ts