Как получить сумму элементов keyup в угловых? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть «N» входов в группу форм, которые мне нужны, чтобы получить сумму:

<input (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">

Мой машинописный текст:

sum(value){
    let sum;
    if(sum == null){
      sum = 0;
    }
    sum =  +Number(value.key);
}

Когда я нажимаю «22», я получаюпросто:

2.

Я уже пытаюсь:

sum += parseFloat(valor.key);

Но я получаю тот же ответ

Как я могусделать это?

Мне нужно что-то вроде этого, но в angular / машинопись:

http://jsfiddle.net/35At5/

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Ваша текущая реализация может обрабатывать только один элемент управления, однако вам нужно суммировать все динамически сгенерированные элементы управления.

Выполните шаги

1.В файле ts

Создайте объект, который может содержать всю модель управления.

public controls = {};

2.в html

<input [(ngModel)]="controls[i]" (keyup)="sum($event)" type="text" name="estoque_variacao{{i}}" class="form-control" id="estoque_variacao{{i}}" formControlName="estoque_variacao">

ngModel создаст свойство внутри controls объекта

3.Final

Наконец нужно получить значения объекта controls и суммировать его.

 let sum = 0;
 Object.keys(this.controls).map(key => {
   sum +=  +this.controls[key];
 });
 console.log(sum);

Вот и все!

0 голосов
/ 17 октября 2018

Ваше событие keyup сохраняет только то, что вы ввели в keyup, оно не знает о предыдущих событиях keyup.Однако вы можете получить входные данные каждого из ваших элементов управления формой, вызвав метод formControl.value() и суммировав свои элементы управления формой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...