AngularJS数据计算算法不正确

时间:2016-06-16 07:55:34

标签: angularjs checkbox

我想我会直截了当地说明

所以,现在我有一个输入字段

balance 
<input type="text" class="form-control" ng-model="vm.data.collection_amount">

和付款金额字段(在数组中)

 <input type="text" class="form-control" ng-model="item.payment_amount" ng-change="vm.calculateAmount(item)">

然后我有一个数组中的付款清单

(vm.invoice)

对于每个付款清单行,都有一个复选框,然后是付款金额的输入字段。

这是工作流程:

  
      
  1. 用户输入他想要支付的金额余额。例如,他增加了余额$ 20
  2.   
  3. 然后会有一份他必须支付的付款清单。让我们说他有2笔付款,他必须支付。
  4.   
  5. 第一名是100美元,第二名是150美元
  6.   

我想要实现的是另一张发票的验证。

我有这段代码

var co_amount = parseFloat(vm.data.collection_amount).toFixed(2);
//co_amount is $20;

if(item.checkbox == true){
            console.log("checkbox : true");
            if(vm.data.collection_amount == null || vm.data.collection_amount == undefined || vm.data.collection_amount == ''){
                item.payment_amount = 0;
            }
            else{
                if(vm.data.collection_amount > 0){
                    vm.data.collection_amount = 0;
                    item.payment_amount = co_amount;
                }
                else
                    item.payment_amount = 0;
            }
        }
else{
            console.log("checkbox : false");
            vm.data.collection_amount = co_amount;
            item.payment_amount = 0;
}     

现在,如果我切换第一个发票复选框,付款金额将自动填入余额金额20美元,余额金额将变为$ 0,如果我取消选中该复选框,付款金额将变为0然后余额将回到20美元(这没有问题,反之亦然)。

然后我检查了第一张发票,然后检查了第二张发票,第二张发票付款金额将变为0,这是正确的,因为余额金额已经是0.但是,如果我用第一张发票取消选中第二张发票检查后,余额金额将回到20美元,这是假的!我发现if else语句中缺少某些内容,但我无法弄清楚该怎么做。

我想要的是

  

当用户取消选中第二张发票时。余额仍然是   $ 0没有回到20美元。       在当前条件下,由于else语句,余额金额将回到20美元。

我已经处理了好几个小时了。它真的让我感到沮丧。

我知道还有更多的验证要做,但我不能继续前进,因为这是第一个&#34;步骤

有人可以指出该怎么办?非常感谢你

0 个答案:

没有答案