如何在Angularjs中使用逗号值总和?

时间:2016-10-31 10:49:11

标签: html css angularjs meanjs

我在我的应用程序中使用MEAN堆栈,将AngularJS作为我的前端。如何new User({id: 2}). save(). then((model) => { res.json({ success: true }); }); 以及total sum,实际上我得到comma valuetotal sum value不是comma value ... My Plunker 示例: - 没有逗号calculated值总和答案我得到3850.20,然后用amt comma个值得到总和我得到2.00,期望像3850.20,如果有人知道解决方案对我们有所帮助....

我的控制器: -

amount payment

我的Html: -

    .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);
    }
})

我的数据:

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

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

我创建了Plunker作为参考: - Plunker

1 个答案:

答案 0 :(得分:1)

我认为您应该避免在格式化后存储/传递数字,因此您应该将数字"amount_payment": "1,925.10"作为"amount_payment": "1925.10"(不使用逗号)传递,或者更好地传递为float:"amount_payment": 1925.10,on您可以使用 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);
  }
})

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