Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
货币comapre在angularjs中未按预期工作_Angularjs - Fatal编程技术网

货币comapre在angularjs中未按预期工作

货币comapre在angularjs中未按预期工作,angularjs,Angularjs,我在HTML中有这个angularjs条件 <td> <div style="color:red" ng-if="s.paid_amount == 0"> Open </div> <div style="color:#D5DC07" ng-if="s.paid_amount > 0 && s.paid_amount < s.bill_amount"> Sem

我在HTML中有这个angularjs条件

<td>    
    <div style="color:red" ng-if="s.paid_amount == 0">
        Open
    </div>
    <div style="color:#D5DC07" ng-if="s.paid_amount > 0 && s.paid_amount < s.bill_amount">
        Semi Closed
    </div>
    <div style="color:#02FC1B" ng-if="s.paid_amount == s.bill_amount">
        Closed
    </div>
<td>
这是来自查询的响应

因此,理想情况下,它应该为两个记录打印半封闭。但它不打印3个条件中的任何一个


有没有其他方法可以比较角度货币?

比较失败,因为原始数据是字符串而不是数字。您需要先将数据转换为数字。我通过运行以下命令检查了您的数据,它确实返回true

Numbers.paid_amount>0&&Numbers.paid_amount 现在,您可以通过两种方式将数据转换为数字。首选方法是在控制器内部。您可以在数据集上执行以下操作

data = data.map(function (o) {
            o.paid_amount = Number(o.paid_amount);
            o.bill_amount = Number(o.bill_amount);
            return o;
        });
或者,另一种方法是从ng repeat块内的控制器调用函数

控制器:

模板


当然,可能有更好的方法来实现转换。但这是需要做的要点。

支付金额和账单金额的类型如何?@SatanDmytro在mysql中是小数10,2。在控制器内部也是数字?@SatanDmytro在控制器内部我不保存它们。直接循环。http调用后,将数据保存在suppliersscope变量中,然后检查s对象的内容是否正确?你能给我看一下它的console.log吗?
[$scope/vm].toNumber = function (num) {
        return Number(num);
    }
<td>    
<div style="color:red" ng-if="toNumber(s.paid_amount) == 0">
    Open
</div>
<div style="color:#D5DC07" ng-if="toNumber(s.paid_amount) > 0 && toNumber(s.paid_amount) < toNumber(s.bill_amount)">
    Semi Closed
</div>
<div style="color:#02FC1B" ng-if="toNumber(s.paid_amount == toNumber(s.bill_amount)">
    Closed
</div>