Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Javascript 使用十进制对正数和负数进行筛选和排序_Javascript_Jquery_Angularjs_Angular Ui Grid - Fatal编程技术网

Javascript 使用十进制对正数和负数进行筛选和排序

Javascript 使用十进制对正数和负数进行筛选和排序,javascript,jquery,angularjs,angular-ui-grid,Javascript,Jquery,Angularjs,Angular Ui Grid,我正在使用angularjs ui grid以表格形式显示数据。数据在网格中绑定得非常好。在网格中,很少有列具有应用了angularjscurrency过滤器的正数和负数 现在,当我用它过滤行时,它不能按照要求工作 我正在使用以下代码: cellFilter: 'customCurrencyFormat:"hideZero"',

我正在使用
angularjs ui grid
以表格形式显示数据。数据在网格中绑定得非常好。在网格中,很少有列具有应用了
angularjs
currency过滤器的正数和负数

现在,当我用它过滤行时,它不能按照要求工作

我正在使用以下代码:

                               cellFilter: 'customCurrencyFormat:"hideZero"',                               
                                filter: {
                                      condition: function(searchTerm, cellValue) {
                                        console.log(':::cellValue:::', cellValue);
                                        searchTerm = searchTerm.replace(/^-?[0-9]\d*(\.\d+)?$/g, '');
                                        console.log(':::searchTerm:::', searchTerm);
                                        var strippedValue = (cellValue + '').replace(/^-?[0-9]\d*(\.\d+)?$/g, '');
                                        console.log(':::strippedValue:::', strippedValue);
                                        return strippedValue.indexOf(searchTerm) >= 0;
                                      }
                                    },
                                filterCellFiltered:true,
请查找
customCurrencyFormat
的以下代码:

HelperServices.filter('customCurrencyFormat',函数($filter){ 返回函数(val、cond、decimalPlaces){

if(decimalPlaces的类型=='undefined'| | decimalPlaces==null){
小数位数=2;
}
如果(val==“0”&&cond==“showZero”){
返回($filter('currency')(val,“,decimalPlaces));
}else if(val==0&&cond==“hideZero”){
返回null;
}否则{
if(val<0){
返回($filter('currency')(val,“,decimalPlaces)).replace(“(”,“-”).replace(“),”);
}否则{
返回($filter('currency')(val,“,decimalPlaces));
}
}
}
}))

显示空白代替0符合要求。使用此过滤器,如果我在过滤器中输入
,值就会出现。即使没有
,它也会产生一些意想不到的结果。带小数的数字永远不能与这些筛选器一起使用

用户将在过滤器输入框中输入不带
的数字。如果没有给出符号,则显示正数和负数。如果给出了
-
号,则只会出现负数

更新

请查看屏幕截图:

    if(typeof decimalPlaces =='undefined' || decimalPlaces ==null ){
        decimalPlaces = 2;
    }

    if(val == "0" && cond == "showZero"){
        return ($filter('currency')(val, "", decimalPlaces));
    }else if(val == 0 && cond == "hideZero"){
        return null;
    }else{
        if(val < 0){
            return ($filter('currency')(val, "", decimalPlaces)).replace("(", "-").replace(")", "");
        }else{
            return ($filter('currency')(val, "", decimalPlaces));
        }
    }
}