2016-08-19 35 views
0

我在AngularJS的應用程序中使用MEAN堆棧作爲我的前端。我試圖hide一個值,並得到適當的totalsum值太012 ..如果inclusivechecked or trueexclusive是false,所以值應該需要隱藏,所以我已經使用ng-hide,值也隱藏。但是總和值也顯示爲隱藏的獨佔值,所以我期待的是,如果某些值隱藏了總計值,則必須僅計算其餘值。例如: - 如果inclusive爲true, exclusivehidden則獨家totalsum值應爲388不喜歡499 .......請看plunker和幫助我一樣感謝...如何解決在angularjs中使用ng-hide時總計問題?

控制器: -獨家totalsum功能: -

.filter('totalSumPriceQty', function() { 
    return function (data, key1, key2) {   
     if (angular.isUndefined(data) && angular.isUndefined(key1) && angular.isUndefined(key2)) 
      return 0; 

     var sum = 0; 
     angular.forEach(data,function(v,k){ 
      sum = sum + (parseInt(v[key1]) - parseInt(v[key2])/100); 
     }); 
     return sum; 
    } 
}) 

    .filter('totalSumPriceQtytwo', function() { 
     return function (data, key1, key2) {   
     if (angular.isUndefined(data) && angular.isUndefined(key1) && angular.isUndefined(key2)) 
      return 0; 
       var sum = 0; 
       angular.forEach(data,function(v,k){ 
        sum = sum + (parseInt(v[key1]) * parseInt(v[key2])/100); 
      }); 
     return sum; 
     } 
    }) 

我的HTML: -

<td ><p ng-hide="mani.service_tax==false">{{(mani.invoice_quantity - mani.invoice_value_fob/100)}}</p></td> 

    <td ><p ng-hide="mani.exclusive==false">{{(mani.invoice_quantity * mani.invoice_value_fob/100)}}</p></td> 

Totalsum HTML: -

<td>{{resultValue | totalSumPriceQty:'invoice_quantity':'invoice_value_fob'}}</td> 

    <td>{{resultValue | totalSumPriceQtytwo:'invoice_quantity':'invoice_value_fob'}}</td> 

我已經創建Plunker供參考: - My Plunker

一個例子: -

這裏一個包容性交易是真實的另一個是錯誤的......我們用ng-hide來隱藏虛假值...總計需要計算真值只有像回答將是34 .....不像127請幫助我們...

回答

1

對於每個過濾器,添加相同的邏輯,以排除使用隱藏

filter('totalSumPriceQty', function() { 
    return function (data, key1, key2) {   
     if (angular.isUndefined(data) && angular.isUndefined(key1) && angular.isUndefined(key2)) 
      return 0; 

     var sum = 0; 
     angular.forEach(data,function(v,k){ 
      if(v.service_tax){ 
      sum = sum + (parseInt(v[key1]) - parseInt(v[key2])/100); 
      } 
     }); 
     return sum; 
    } 
}) 

filter('totalSumPriceQtytwo', function() { 
    return function (data, key1, key2) {   
     if (angular.isUndefined(data) && angular.isUndefined(key1) && angular.isUndefined(key2)) 
      return 0; 

     var sum = 0; 
     angular.forEach(data,function(v,k){ 
      if(v.exclusive){ 
      sum = sum + (parseInt(v[key1]) * parseInt(v[key2])/100); 
      } 
     }); 
     return sum; 
    } 
}) 

數據看分叉plnkr