#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;
}