При обновлении элемента ng-repeat в списке обновляется только последний - PullRequest
0 голосов
/ 05 июля 2018

У меня есть список ng-repeat с некоторым номером. Я также суммирую все числа и показываю сумму в нижнем колонтитуле таблицы.

Теперь мне нужно при ручном вводе числа в СУММ вычислить число в каждом элементе в ng-repat.

здесь я в ng-repat вызываю ng-init и передаю $ index и item в функцию для рассчитать сумму

<tr ng-repeat="item in myCartItems track by $index" ng- 
init="storeValueOnScope($index, item)">


$scope.storeValueOnScope = function(index, item){
  $rootScope.indexOdabranihKlupa = index;
  $rootScope.impresijeKampanja = item.campaignImpressions;
}

разница в процентах между максимальным количеством показов и количество выбранных показов

$scope.getUserSelectedImpresion = function (impressions){
   $scope.userSelectedImpressionsSumBench = impressions;

   $scope.percentageDiff = $scope.userSelectedImpressionsSumBench  / 
     $rootScope.totaImpressionsSum * 100;

   $scope.calculateDiff($rootScope.indexOdabranihKlupa, 
     $rootScope.impresijeKampanja);
}

здесь я вычисляю новый номер и хочу вставить новый номер в ng-repeat, уже загруженный в DOM

$scope.calculateDiff = function(index, item) {
  $scope.myCartItems[index].campaignImpressions = (item * 
    $scope.percentageDiff) / 100; 
}

вот часть, где я хочу получить новое значение

<input type="number" ng-model="item.campaignImpressions" ng-min="0" ng- 
max="item.maxValue" class="inputPolje" name="campaignImpressions" />

Задача

когда я вычисляю все это, я получаю правильное число, но только для последнего элемента, а не для каждого в списке ng-repeat

 |ID   | Available impressions (input) |
 |1000 |       5000                    | max: 5000
 |1004 |       5000                    | max: 5000
 |1098 |       4666.666666666666       | max: 5000 //only this one is calculated
 total max: 15000 (input field)
 user select: 14000 //this is number for make calculation

вот мой пример JSON

[{
"id": 1000,
"campaignImpressions": 5000,
"mediaImpressions": 5000,
"time": "20:30:00"
 }, {
"id": 1004,
"campaignImpressions": 5000,
"mediaImpressions": 5000,
"time": "20:30:00"
 }, {
"id": 1004,
"campaignImpressions": 5000,
"mediaImpressions": 5000,
"time": "20:30:00"
 }]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...