我在以AngularJS为前端的应用程序中使用MEAN堆栈。如何与total sum一起使用comma value,实际上我得到了total sum value,但comma value不是calculated ... My Plunker例如:-没有逗号amt值总和,我得到了3850.20 ,然后使用commaamount payment个值的总和,我得到2.00,期望像3850.20,如果有人知道该解决方案对我们的帮助,谢谢....

我的控制器:

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

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


我的HTML:

<td >{{mani.amt}}</td>

  <td >{{mani.amount_payment }}</td>


我的资料:

    {
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},

{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},


我创建了Plunker供参考:-Plunker

最佳答案

我认为您应该避免在格式化后存储/传递数字,因此您应该将数字"amount_payment": "1,925.10"传递为"amount_payment": "1925.10"(不带逗号),或者甚至更好地传递为float:"amount_payment": 1925.10,在您的视图上可以使用Number的格式进行格式化toLocalString()函数:(1925.10).toLocaleString()甚至("1925.10").toLocaleString()。在您的情况下,您可以在汇总时删除逗号:

angular.forEach(data,function(v){
  sum = sum + parseFloat(v[key].replace(',', ''));
});


您也可以使用reduce()函数求和:

app.filter('sumOfValue', function () {
  return function (data, key) {
    // debugger;
    if (!data || !data[0] || !data[0][key]) {
      return 0;
    }

    var sum = data.reduce(function(sum, val) {
      return sum + parseFloat(val[key].replace(',', ''));
    }, 0);

    return sum.toFixed(2);
  }
})


塞子:http://plnkr.co/edit/8Hllaw254sBO2nbaZlKQ?p=preview

关于html - 如何在Angularjs中将总和与逗号值一起?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40340675/

10-09 15:23
查看更多