1

我想在 AngularJS 中动态添加 JSON 元素的值。下面是我要在其中显示它的 HTML 标记:

<tr>  
  <th class="right"> Ending Value<span class="subVal">:</span></th>
</tr>
<tr>
  <td class="right">$21,50,868.06</td>
</tr>

现在对于这个结束值,我希望它应该是retailAcctTotalBalance以下 json 元素的总和:

"acconnts": [{
    "userName": null,
    "retailAcctNumber": "574436368",
    "retailAcctTotalBalance": 0.0
}, {
    "userName": null,
    "retailAcctNumber": "101215858",
    "retailAcctTotalBalance": 2118639.38
}, {
    "userName": null,
    "retailAcctNumber": "101900352",
    "retailAcctTotalBalance": 32228.68
}, {
    "userName": null,
    "retailAcctNumber": "574435165",
    "retailAcctTotalBalance": 0.0
}]
4

2 回答 2

1

最简单的方法:

在您的 html 文件中,您可以执行以下操作:

<td class="right">{{ sum }} </td>

并且,在您的控制器中:

$scope.sum = 0;
$scope.accounts = { /* your json data */ };
angular.forEach($scope.accounts, function(acc, index) {
    $scope.sum += acc.retailAcctTotalBalance;
});
于 2013-11-12T13:15:06.527 回答
0

一种方法是在范围内添加一个函数,该函数可以从模型中输出您想要的内容

$scope.total=function(){
   var total=0;
   angular.forEach($scope.accounts, function(account) {
      total += acc.retailAcctTotalBalance;
    });
    return total;
});

在标记中:

<td class="right">{{ total() }} </td>

现在,每当对数据进行更新时,角度观察者将运行一个摘要周期,在每个摘要周期上,它将评估标记中找到的范围函数

另一种方法是观察数据并在变量发生变化时更新它

$scope.total=0;
$scope.accounts={ /* data*/}

$scopw.$watch('accounts',function(newVal,oldVal){
   if(newVal != undefined)
   $scope.total = getTotal();
})

function getTotal(){
   var total=0;
   angular.forEach($scope.accounts, function(account) {
      total += acc.retailAcctTotalBalance;
    });
    return total;
});

在标记中:

<td class="right">{{ total }} </td>
于 2013-11-12T13:21:15.637 回答