Как вычислить сводку результата в общем результате из строки таблицы

#angularjs

#angularjs

Вопрос:

я могу вычислить два входных данных и сохранить результат во вводе результата и добавить новую строку, но я хочу вычислить сводку значений результата в общем результате (этот ввод находится за пределами tr)

 [here is my code][1]



 https://jsbin.com/gewigopevo/edit?html,js,output
  

Ответ №1:

Переместите

 $scope.Total = total
  

из for loop и место

 $scope.rvm.push({})
  

в конце addRow1 function

Ваш function должен выглядеть следующим образом

 $scope.addRow1 = function (index) {
      $scope.rvm[index].result = $scope.rvm[index].val1 - $scope.rvm[index].val2;
        var total = 0;
        for (var i = 0; i < $scope.rvm.length; i  ) {
          total  = parseInt($scope.rvm[i].result);

        }
      $scope.Total = total;
      $scope.rvm.push({});
    }
  

ПОЛНЫЙ ПРИМЕР

Ответ №2:

Я посмотрел на ваш код. Я добавил счетчик для total, который объединяет итоговое значение после каждого события добавления, вычисляя текущий итог. Я передаю это $scope переменной вне таблицы.

В контроллере

     $scope.outsidetotal = 0; //outside of table scope
    $scope.rvm = [{}];
    var total = 0;
    $scope.total = 0;

  $scope.addRow1 = function (index) {
        $scope.rvm[index].result = $scope.rvm[index].val1 - $scope.rvm[index].val2;
        $scope.rvm.push({})
        $scope.outsidetotal = $scope.total  = $scope.rvm[index].resu<  
    }
  

ДЕМОНСТРАЦИЯ

Ответ №3:

попробуйте использовать watch

Добавьте строки ниже в функцию addRow1:

 $scope.$watchCollection("rvm", function() {
    $scope.Total = total();
});
  

А затем создайте функцию total() и получите сумму всех значений результата.

 function total() {
    var totalNumber = 0;
    for(var i=0; i<$scope.rvm.length; i  ){
      totalNumber = totalNumber   parseInt($scope.rvm[i].result);
    }
    return totalNumber;
  }