ng-repeat中的第二次输入更新未触发过滤器

时间:2018-07-09 09:44:15

标签: javascript angularjs

我有一个ng-repeat列表,在这里我可以在每个字段上手动输入值,也可以在求和输入中输入,并且在每个输入中ng-repeat更改值都由这个和。 问题是,在ng-repeat init上,我对新输入字段中的所有数字求和,并且当我直接更改ng-repeat的值时,过滤器成功对所有ng-repeat的值求和。 如果我在“求和”框中输入另一个值,则根据求和数获得所有ng-repeat个新值。

但是,如果我尝试这样做,则在此之后直接更改ng-repeat列表中的值,不会触发求和过滤器。

Working plunker

这是html

<div ng-repeat="item in items track by $index" ng-init="storeValueOnScope($index, item)">
  <input type="number" ng-model="item.campaign_impressions" name="item"  ng-value="item" ng-blur="sendCustomSelectedImpressionsPerBench($index, item.campaign_impressions);">
</div>
<div>
  <label for="sumImpressions">Sum: </label>
        <input type="number" class="inputPolje" ng-model="campaignViewsTotalGoal" ng-change="getUserSelectedImpresion(campaignViewsTotalGoal)"
          ng-name="sumImpressions" 
          ng-value="items | sumOfValue:'campaign_impressions'">
</div>

这里是过滤器

 myApp.filter('sumOfValue', function() {
 return function(data, key) {
if (angular.isUndefined(data) || angular.isUndefined(key))
  return 0;
var sum = 0;

angular.forEach(data, function(v, k) {
  sum = sum + parseInt(v[key]);
});
return sum;
}
});

0 个答案:

没有答案