【问题标题】:How Do I Sum the Total Of The Column Values If filtering the pending values in Angularjs?如果过滤Angularjs中的未决值,我如何对列值的总数求和?
【发布时间】:2017-11-24 11:25:08
【问题描述】:

我在我的应用程序中使用 MEAN 堆栈,并将 AngularJS 作为我的前端。如何total sum 列值,如果在表中过滤了某些值,实际上我得到了total sum value,但如果我在表中像| filter:{status: 'pending'} 这样过滤,总和会得到整体数据值...My Plunker 例如:- 在没有filter 的表中amt 值总和答案我得到5775.30,然后在表中如果我使用像| filter:{status: 'pending'} 这样的过滤器@amt 值总和显示为总值5775.30,期待3850.2 之类的答案,如果有人知道解决方案,请帮助我们,谢谢......

  • 在没有过滤器的表格列中,我们也得到了准确的答案和总和。

  • 1234563喜欢3850.2...请看my plunker

我的控制器:-

    .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){
            var keyval;
      if(isNaN(parseFloat(v[key])))
      keyval=0;
      else
      keyval=parseFloat(v[key]);
      sum = sum + keyval;
        });        
        return sum.toFixed(2);
    }
})

我的 HTML:-

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

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

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

我的过滤器:-

| filter:{status: 'pending'}

我的数据:-

            {
"_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": "100",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"status": "pending",
"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": "100",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"status": "received",
"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": "",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"status": "pending",
"buyer_name": "Manidesigns"
},

我创建了以下给出的答案更新:- Plunker

【问题讨论】:

    标签: html angularjs meanjs


    【解决方案1】:

    您可以将您的 tr ng-repeat 更改为 below 吗,您还没有为 resultValue 分配过滤值

    <tr ng-repeat="mani in resultValue=((sryarndebitnote) | filter:{status: 'pending'}) "> 
    

    【讨论】:

      【解决方案2】:

      您需要将过滤器添加到求和结果中。

                 <tr>
                   <td>sum</td>
                   <td>{{resultValue | filter:{status: 'pending'} | sumOfValue:'amt'}}</td>
                   <td>{{resultValue | filter:{status: 'pending'} | sumOfValue:'amount_payment'}}</td>
                   <td></td>
                 </tr>
      

      【讨论】:

      • 非常感谢您的回答,它运行良好...!!!所以我给你投票感谢你的帮助......
      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2021-11-30
      • 2015-10-17
      • 2019-09-03
      • 2016-12-29
      • 2015-06-20
      相关资源
      最近更新 更多