如何在Angularjs中计算两个值?

时间:2016-10-01 10:07:55

标签: html css angularjs meanjs

我在我的应用程序中使用MEAN堆栈,将AngularJS作为我的前端。如何在angularjs中总和两个值,实际上我们有两个表,我在124.10得到了convertion rate的总和值,然后我希望计算convertion rate总计值A + B 1}}作为124.10 + 124.10 answer = 248.20 ... My Plunker

  • 我们有两个表,所以我想计算第一个表转换率总和值和第二个表convertionrate totalsum值

  • 例如: - fisrt表转换率为124.10,第二个表转换率为124.10,我们需要在第三个表中计算这些值,如A + B回答应该是248.20。

  • 我已将羽毛作为参考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>
  • 第三个表应a+b计算C值的最终总和,如A+B值248.20,因此c值总和为{{ 1}}。

  • 496.40总和值`496.40。

2 个答案:

答案 0 :(得分:0)

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

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

有人说; 您必须实际强制filter的结果为整数。 e.g:

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

但是你真的应该在这个场景中提出一个更强大的方法。即使在控制器中包装parseInt功能也可以解决问题。

进一步阅读:

How to parseInt in Angular.js

答案 1 :(得分:0)

改变这个:

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

对此:

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

问题是括号。