smart-table 数值筛选

HTML
1
<st-number-range predicate="balance" lower="balance.lower" higher="balance.higher"></st-number-range>
 配置
1
app.directive('stNumberRange', ['$timeout', function ($timeout) { 2 return { 3 restrict: 'E', 4 require: '^stTable', 5 scope: { 6 lower: '=', 7 higher: '=' 8 }, 9 templateUrl: 'stNumberRange.html', 10 link: function (scope, element, attr, table) { 11 console.log(element) 12 var inputs = element.find('input'); 13 var inputLower = angular.element(inputs[0]); 14 var inputHigher = angular.element(inputs[1]); 15 var predicateName = attr.predicate; 16 [inputLower, inputHigher].forEach(function (input, index) { 17 18 //红色为官方示例错误 19 input.bind('input', function () { 20 var query = {}; 21 22 if (scope.lower) { 23 query.lower = scope.lower; 24 } 25 26 if (scope.higher) { 27 query.higher = scope.higher; 28 } 29 30 scope.$apply(function () { 31 table.search(query, predicateName) 32 }); 33 }); 34 }); 35 } 36 }; 37 }])
app.filter('customFilter', ['$filter', function($filter) {
            var filterFilter = $filter('filter');
            var standardComparator = function standardComparator(obj, text) {
                text = ('' + text).toLowerCase();
                return ('' + obj).toLowerCase().indexOf(text) > -1;
            };

            return function customFilter(array, expression) {
                function customComparator(actual, expected) {

                    var isBeforeActivated = expected.before;
                    var isAfterActivated = expected.after;
                    var isLower = expected.lower;
                    var isHigher = expected.higher;
                    var higherLimit;
                    var lowerLimit;

                    if (angular.isObject(expected)) {

                        if (isLower || isHigher) {
                            //number range
                            if (isLower) {
                                higherLimit = expected.lower;
                   //红色官方示例错误
                                if (actual < higherLimit) {
                                    return false;
                                }
                            }

                            if (isHigher) {
                                lowerLimit = expected.higher;
                   //红色官方示例错误 
if (actual > lowerLimit) { return false; } } return true; } //etc return true; } return standardComparator(actual, expected); } var output = filterFilter(array, expression, customComparator); return output; }; }]);

转载于:https://www.cnblogs.com/yiyangl/p/10107256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值