Как решить проблему с суммой при использовании ng-hide в angularjs?

0

Я использую стек MEAN в своем приложении с AngularJS как мой интерфейс. Я пытаюсь hide значение и получить правильное значение totalsum тоже. Мой Plunker, если inclusive checked or true exclusive является ложным, поэтому значение должно скрываться, поэтому я использовал ng-hide, значение также скрыто. но общее значение суммы также отображается как скрытое эксклюзивное значение, так что я ожидаю, если какое-то значение будет скрыто, значение totalsum должно вычисляться только остальными значениями значений. Например: если inclusive true, exclusive ценность hidden тогда эксклюзивное значение totalsum должно быть 388 не таким, как 499....... пожалуйста, посмотрите на плункер и помогите мне за то же спасибо...

Контроллер: - для эксклюзивных функций 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, чтобы скрыть ложное значение... totalsum нужно вычислять истинное значение только как ответ будет 34..... не нравится 127 PLS Помогите...

Теги:
meanjs

1 ответ

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;
    }
})

см. forked plnkr

Ещё вопросы

Сообщество Overcoder
Наверх
Меню