• smart-table select unique兼容Edge


    ng.module('smart-table').directive('stSearch', ['stConfig', '$timeout', '$parse',
        function(stConfig, $timeout, $parse) {
            return {
                require: '^stTable',
                link: function(scope, element, attr, ctrl) {
                    var tableCtrl = ctrl;
                    var promise = null;
                    var throttle = attr.stDelay || stConfig.search.delay;
                    var event = attr.stInputEvent || stConfig.search.inputEvent;
                    var trimSearch = attr.trimSearch || stConfig.search.trimSearch;
                    //兼容Edge
                    if (element[0].localName == 'select') {
                        event = 'change';
                    }
                    attr.$observe('stSearch', function(newValue, oldValue) {
                        var input = element[0].value;
                        if (newValue !== oldValue && input) {
                            ctrl.tableState().search = {};
                            input = ng.isString(input) && trimSearch ? input.trim() : input;
                            tableCtrl.search(input, newValue);
                        }
                    });
                    //table state -> view
                    scope.$watch(function() {
                        return ctrl.tableState().search;
                    }, function(newValue, oldValue) {
                        var predicateExpression = attr.stSearch || '$';
                        if (newValue.predicateObject && $parse(predicateExpression)(newValue.predicateObject) !== element[0].value) {
                            element[0].value = $parse(predicateExpression)(newValue.predicateObject) || '';
                        }
                    }, true);
                    // view -> table state
                    element.bind(event, function(evt) {
                        evt = evt.originalEvent || evt;
                        if (promise !== null) {
                            $timeout.cancel(promise);
                        }
                        promise = $timeout(function() {
                            var input = evt.target.value;
                            input = ng.isString(input) && trimSearch ? input.trim() : input;
                            tableCtrl.search(input, attr.stSearch || '');
                            promise = null;
                        }, throttle);
                    });
                }
            };
        }
    ]);
       
  • 相关阅读:
    Java语言----三种循环语句的区别
    选择结构if语句和switch语句的区别
    java中实现多态的机制是什么?
    SpringMVC的运行原理
    Struts1运行原理以及整合步骤
    我回来啦!
    Struts2的运行原理和运行与原理
    初步认识 Web Service
    spring Aop 注解
    mina2.0 spring
  • 原文地址:https://www.cnblogs.com/yiyangl/p/10038613.html
Copyright © 2020-2023  润新知