【分享】动态索引列表实现【搜索有效的方法】

交流Q群:453093824(人少,但是都帮助新人回答小白问题)。搜索无效的原因是因为 索引列表的js实现早于我们的ajax的方法。没有把数据加到索引列表的js ,导致索引列表源码js读不到后来的数据,所以不能搜索,【不知道我这么说大家能不能听懂。因为我看到有人问这个 才来说一下 笨方法,希望大家不喷我就好】
接下来步入正题,大家打开mui.indexedlist.js这个源码js,我们只需要把我们的ajax添加数据加入到源码js初始化之前,(让js在初始化的时候加载到数据即可)。
把我下面的数据复制到mui.indexedlist.js源码里面,找准位置,我首尾都多给了源码,大家应该可以找准位置,复制进去之后,就可以了。很简单,看了之后都能懂。

var IndexedList = $.IndexedList = $.Class.extend({  
        /**  
         * 通过 element 和 options 构造 IndexedList 实例  
         **/  
        init: function(holder, options) {  
            var self = this;  
            mui.ajax('', {//这个是数据导入的ajax  填入url  即可  
                    data: {},  
                    dataType: 'json', //服务器返回json格式数据  
                    type: 'post', //HTTP请求类型  
                    timeout: 10000, //超时时间设置为10秒;  
                    success: function(data) {  
                        var table = document.body.querySelector('.mui-table-view');  
                        for (var i = 0; i < data.length; i++) {  
                            //插入数据  
                        }  
                        self.init1(holder, options);  
                    },  
                    error: function(xhr, type, errorThrown) {  
                        console.log(type);  
                    }  
                });  
        },  
        init1: function(holder, options) {  
            var self = this;  
            self.options = options || {};  
            self.box = holder;  
            if (!self.box) {  
                throw "实例 IndexedList 时需要指定 element";  
            }  
            self.createDom();  
            self.findElements();  
            self.caleLayout();  
            self.bindEvent();  
        },  
               createDom: function() {  
            var self = this;  
            self.el = self.el || {};  
            //styleForSearch 用于搜索,此方式能在数据较多时获取很好的性能  
            self.el.styleForSearch = document.createElement('style');  
            (document.head || document.body).appendChild(self.el.styleForSearch);  
        },  
2016-03-28 10:47 添加评论 分享
已邀请:
1

無語 - mui交流Q群:453093824

赞同来自: DCloud_UNI_Trust

只是给不会的人,大神勿扰。勿喷。

0

414588183@qq.com

赞同来自:

我按照你这个 添加 了 但数据没出来

0

1165050464@qq.com

赞同来自:

我要在一个页面中嵌套使用多个indexlist 怎么弄? 循环遍历list并window.indexedList = new mui.IndexedList(list);后只有第一个能正常显示 其他的都不好使 要是不用他检索会失效所以我想把他重写一下 但没弄明白怎么回事?大神有招没

0

1019422167@qq.com

赞同来自:

感谢楼主分享,获取数据后调用索引方法就能索引了。

0

2573093687@qq.com

赞同来自:

那要是存储的用户id,怎么获取到啊,在mui.indexedlist.js中

0

838206954@qq.com - 90后足球程序狗

赞同来自:

ajax得时候 直接 async: false ajax同步请求就行了

0

Denty - i hv no story to tell

赞同来自:

万分感谢,实操有效~~~~

要回复问题请先登录注册