Задать вопрос
@CubaJas
Web-программист

Почему не срабатывает computed метод во vue?

Есть метод:
parse: function () {
	    var vm = this;
		var data = $('#form-one-ass').val();
		var rows = data.split("\n");
		var tmpWorkOrders = [];
		for(var y in rows) {
		  var cells = rows[y].split("\t");
		  tmpWorkOrders.push({
			NUMBER: cells[0],
			SUM: parseFloat(cells[1]),
			DATE: cells[2],
			CONTRACTOR: cells[3]
		  });
		  this.form.workOrders = Object.assign([], vm.form.workOrders, tmpWorkOrders);
                  //this.form.workOrders = Object.assign([], this.form.workOrders, tmpWorkOrders);
		};
	  }

Есть computed:
sumShipping: function () {
	    var sum = 0;
		this.form.workOrders.forEach(function (val, i) {
		  sum += val.SUM;
		});
		return sum;
	  }

Изменения в DOM происходят(вставка таблицы), а computed не срабатывает(сумма).
Какой нюанс во vue я опустил?
  • Вопрос задан
  • 602 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@CubaJas Автор вопроса
Web-программист
Дело не во Vue, он нормально всё просчтитывает. Дело в том, что в методе parse надо было сделать нормальную проверку на создание массива, он генерировал последнюю пустую строку с суммой NaN и суммирование в computed не срабатывало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
sumShipping вообще используется где-то или только объявлен?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы