<td ng-repeat= "x in names |orderBy:'-Hindi' | limitTo:1" > {{x.name}} 如果用户编辑任何单个数据槽,标记应更新



我正在尝试更改每次用户编辑英语或印地语标记时的代码,然后相应地更新最高的印地语和/或英语标记

控制器代码

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope)
{
$scope.names = [
        {name:'Priya',age:'19',gender:'Female',English:x[0], Hindi:x[1]},
        ....
        ....
        {name:'Dev', age:'18' ,gender:'Male',English:x[2] ,Hindi:x[3]},
           ];
$scope.sum = function(list) 
    {
        var total=0;
        angular.forEach(list , function(x){
        total+= x[];
    });
    return total;
}
});

网页代码这是我目前用于显示最高分的代码

<tr ng-repeat ="x in names | orderBy:'sortColumn'">
        <td>{{x.name}}</td>
        <td>{{x.age}}</td>
        <td>{{x.gender}}</td>
        <td><input type="text" ng-model="x.English"></td>
        <td><input type="text" ng-model="x.Hindi"></td>
        <td ng-bind="avg=(x.English+x.Hindi)/2">{{avg}}</td>
        <td>
            <button><a href="" ng-click="delete(x)">Delete</a></button>
        </td>
    </tr>
</table>
<table ng-model="sum">
    <tr><td>The total is: <input value="{{sum(x)}}"></td></tr>
  **<tr><td>THIS IS WHERE I WANT TO DISPLAY HIGHEST MARKS IN ENGLISH</td></tr>**
  **<tr><td>**<td ng-repeat="x in names |orderBy:'-Hindi' | limitTo:1"> {{x.name}}THIS IS WHERE I WANT TO DISPLAY HIGHEST MARKS IN HINDI</td></tr>**

</table>

你可以像下面这样把watch放在数组上:

$scope.total = 0
$scope.$watch('names', function(newVal) {
    var total = 0;
    angular.forEach(newVal, function(x) {
      total += parseInt(x.English) + parseInt(x.Hindi);
    });
    $scope.total = total
}, true);

并在模板中将{{sum(x)}}替换为{{total}}.

在此处查看工作示例

最新更新