[英]How to Sum a Json Array value in AngularJS ng-repeat
我想总结使用JSON数组动态添加的产品数量。
<tr ng-repeat="(key,val) in form.products">
<td>{{ProductName(key)}}</td>
<td >
<input type="text" name="products" ng-model="form.products[key]" class="form-control">
</td>
</tr>
在上面的示例中,如何获得乘积之和?
您使用的是“ 带有属性 的对象 ”,而不是“ 对象 数组 ”,这就是为什么您不能使用上面的示例$ scope.products.length; ...的原因 。
您的产品对象及其属性 :
$scope.products ={
"1":"20",//property 1 with value 20
"2":"35",//property 2 with value 35
"3":"150"//property 3 with value 150
}
数据对象(具有属性的对象) :
$scope.myData = {"1":120,"2":250,"3":500};
迭代到对象属性并求和的函数 :
//read object properties and sum price
$scope.calculateSum = function(data){
var sum=0;
var counter=0;
for (var property in data) {
if (data.hasOwnProperty(property)) {
sum += data[property];
counter++;
}
}
return sum;
};
迭代到对象属性并计算乘积的函数
//read object properties and count the products
$scope.countProducts = function(data){
var counter=0;
for (var property in data) {
if (data.hasOwnProperty(property)) {
counter++;
}
}
return counter;
};
进入您的HTML模板:
<table>
<tr ng-repeat="(key,value) in myData track by $index">
<td>
<input type="text" name="id" ng-model="key" class="form-control">
</td>
<td>
<input type="text" name="price" ng-model="value" class="form-control">
</td>
</tr>
<tr>
<td>Products: {{countProducts(myData)}}</td>
<td>Sum: {{calculateSum(myData)}}</td>
</tr>
</table>
我已经完成了一个实时示例,该示例对产品进行计数并对产品价格进行求和: http : //plnkr.co/edit/FmJhvV?p=preview
希望有帮助,祝你好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.