在 angularjs 中使用 ng-hide 如何解决总和问题?

How to solve the totalsum issue while using ng-hide in angularjs?

我在我的应用程序中使用 MEAN 堆栈,AngularJS 作为我的前端。我正在尝试 hide 一个值并获得正确的 totalsum 值..My Plunker 如果 inclusivechecked or true 那么 exclusive 是假的该值应该需要隐藏,所以我使用了ng-hide,该值也被隐藏了。但是总和值也像隐藏的独占值一样显示,所以我期望如果某些值被隐藏,总和值必须只计算其余值..例如:- 如果 inclusive 为真 exclusive 值为 hidden 那么独占总和值应该是 388 而不是 499.......请看看 plunker 并帮助我同样感谢...

控制器:- 对于独占总和功能:-

.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>

总和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 请帮助我们...

对于每个过滤器,添加相同的逻辑以排除您用来隐藏的数据

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