Angularjs 当值发生变化时,以ng重复计算总和

Angularjs 当值发生变化时,以ng重复计算总和,angularjs,sum,angularjs-ng-repeat,Angularjs,Sum,Angularjs Ng Repeat,当值发生变化时,我要计算总和 <tr ng-repeat="act in ctrl.otsact.tests" ng-if="ctrl.editToggle"> <td> <md-input-container> <input type="text" ng-model="act.test_date" class="dateField" aria-label="Test Date"> &

当值发生变化时,我要计算总和

<tr ng-repeat="act in ctrl.otsact.tests" ng-if="ctrl.editToggle">
    <td>
        <md-input-container>
            <input type="text" ng-model="act.test_date" class="dateField" aria-label="Test Date">
        </md-input-container>
    </td>
    <td ng-repeat="sub in act.subjects" >
        <md-input-container>
            <input type="number" ng-model="sub.score" aria-label="Score">
        </md-input-container>
    </td>
    <td class="composite">
        100
    </td>
    <td><span ng-click="ctrl.removeOTSACT(act.id)"> x </span></td>
</tr>
要在加载视图时计算合成:

<td class="composite">{{ getSum(act) }}</td>
{{getSum(act)}
控制器:

$scope.getSum = function(act){
    var sum = 0;
    for(var i = 0; i < act.subjects.length; ++i){
        var subject = act.subjects[i];
        sum += subject.score;
    }
    return sum;
}
$scope.getSum=函数(act){
var总和=0;
对于(变量i=0;i

当您使用ngModel指令或插值时,数据是双向绑定的,每次更改模型时都会重新计算函数值。

像这样更改视图

<tr ng-repeat="act in ctrl.otsact.tests" ng-init="act.subjects.total=0" ng-
if="ctrl.editToggle">
<td>
    <md-input-container>
        <input type="text" ng-model="act.test_date" class="dateField" aria-
label="Test Date">
    </md-input-container>
</td>
<td ng-repeat="sub in act.subjects" >
    <md-input-container>
        <input type="number" ng-model="sub.score" 
ng-init="act.subjects.total=act.subjects.total+sub.score" aria-label="Score">
    </md-input-container>
</td>
<td class="composite">
    {{act.subjects.total}}
</td>
<td><span ng-click="ctrl.removeOTSACT(act.id)"> x </span></td>
</tr>

{{act.subjects.total}
x
试试这个:

<td class="composite">{{act.subjects | map:'score' | sum}}</td>
{{act.subjects | map:'score'| sum}

控制器code@DeveloperUse
ng对输入进行更改
,并在控制器中调用一个函数来更新复合值。登陆时这很好。我如何计算值?我得到一个错误
angular.js:107错误:[$injector:unpr] http://errors.angularjs.org/1.4.4/$injector/unpr?p0=sumFilterProvider%20%3C
。我必须进行任何配置更改。?是的,您是否在模块中包含角度过滤器并将其注入?您能否提供有关为什么建议此答案的更多详细信息?默认情况下,其显示为NaN,我如何解决此问题。?
<td class="composite">{{act.subjects | map:'score' | sum}}</td>