如何对 Angularjs 中的两个值求和?

How To Totalsum Two Values In Angularjs?

我在我的应用程序中使用 MEAN 堆栈,AngularJS 作为我的前端。如何对 angularjs 中的两个值求和,实际上我们有两个 table,我在 convertion rate 中得到了像 124.10 这样的总和值,然后我期望计算 convertion rate 总和值如 A + B 作为 124.10 + 124.10 answer = 248.20...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){
            sum = sum + parseFloat(v[key]);
        });        
        return sum.toFixed(2);
    }
})

我的数据:-

$scope.sryarndebitnote = [
{
"_id": "57ac1b6d82e1c5940ac3c730",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-08-11T06:30:05.118Z",
"shipment_id": "57ac19b982e1c5940ac3c72f",
"conversion_rate": "62.04",
"invoice_value_fob_currency": "Rs",
"invoice_value_fob": "300.231",
"invoice_quantity_unit": "KG",
"invoice_quantity": "37",
"invoice_date": "2016-08-17",
"supplier_name": "Msd",
"buyer_name": "Mani selvam .R"
},

{
"_id": "57b5af69df0475401f644b2e",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-08-18T12:51:53.671Z",
"shipment_id": "57b5af5bdf0475401f644b2d",
"conversion_rate": "62.06",
"exclusive": true,
"invoice_value_fob": "400.343",
"invoice_quantity": "97",
"supplier_name": "Msd",
"buyer_name": "Mani selvam .R"
},]

我的Html:-

<tr ng-repeat="mani in resultValue=(sryarndebitnote)"> 
     <td >{{$index + 1}}</td>
       <td >{{(resultValue | sumOfValue:'conversion_rate' * 1) + (resultValue | sumOfValue:'conversion_rate' *1)}}</td>
         </tr>
     <tr>
        <td>sum</td>
            <td>B = {{resultValue | sumOfValue:'conversion_rate'}}</td>

         </tr>
{{(resultValue | sumOfValue:'conversion_rate' * 1) + (resultValue | sumOfValue:'conversion_rate' *1)}}

不鼓励使用这种技巧来强制进行整数求和,您不应在敏感应用程序中使用它们。

话虽这么说; 您实际上必须强制 filter 的结果为整数。例如:

   {{(resultValue | sumOfValue:'conversion_rate')*1 + (resultValue | sumOfValue:'conversion_rate')*1}}

但在这种情况下,您确实应该想出更稳健的方法。即使在你的控制器中包装 parseInt 函数也能达到目的。

进一步阅读:

How to parseInt in Angular.js

改变这个:

 <td >{{(resultValue | sumOfValue:'conversion_rate' * 1) + (resultValue | sumOfValue:'conversion_rate' *1)}}</td>

为此:

 <td>{{((resultValue | sumOfValue:'conversion_rate')*1) + ((resultValue | sumOfValue:'conversion_rate' )*1)}}</td>

问题是括号。