## Description
分页功能

## usage
### 功能说明
用于需要分页加载的列表结构

    class : ListLoader
    param:conifg
    {
        template: 模板配置项
        [string]: HTML生成||模板ID匹配
        [Element]:cloneNode生成
        [function]:call>return
        generator: 模板配置项，同template，存在generator则优先使用generator  
    }
    
* 所有函数参数，会自动获得ListLoader作为Context(this）

### 示例
```
var pageListLoader  = new ListLoader({
    container:reg.proStockList,
    getData: 'stockList',
    pattern: 2,
    pageSize: 10,
    onOnceLoad: function(listData) {
        reg.proStockList.innerHTML = "";
        pageList.init(listData);
    },
    startLoad:false,
    showLoading:function () {
        $Loading.moonShow(reg.selectList);
    },
    hideLoading:function () {
        $Loading.moonHide(reg.selectList);
    }
});
```

### 参数介绍
param:config{}
##### config.template
列表项生成的模板
* {string}   : 尝试创建HTML元素，创建失败寻找对应模板 template template-name
* {element}  : 使用cloneNode生成新节点
* {function} : 会调用函数并获取返回值作为模板
> 所有函数参数，会自动获得ListLoader作为Context(this)  
###### 字符串模式模板寻找顺序：
```css
#templateContainer [data-template="' + template + '"]
#templateContainer [template="' + template + '"]
[data-template="' + template + '"]
[template="' + template + '"]
```

##### config.getData
AJAX接口
* {string}   : 会查找$interface上对应名称的接口方法
* {function} : 接口请求函数 function(data){}

##### config.pattern
加载模式
* {number}   : 1、滚动加载模式  2、分页加载模式

##### config.pageSize
页面大小
* {number}   : 默认为10

##### config.curPage
当前页面编号
* {number}   : 默认为1


##### config.onOnceLoad
单次加载后回调
* {function} ：每次加载完成后的回调，通常和ElementList结合使用
###### dataBuilder配置项示例：
```
onOnceLoad: function(listData) {
    // 数据获取后使用 pageList 显示数据
    pageList.init(listData);
}
```

##### config.startLoad
是否立即开始加载
* {boolean}   : 默认为true，设置为false后不会自动加载数据，需要手动调用.initList


##### config.baseUrlParams
基础参数

##### config.extractListData
数据提取方法

##### config.container
列表容器Element


##### config.showLoading
加载中状态
* {function} ：当前分页列表数据加载中状态展示，有默认方法。

##### config.hideLoading
加载中结束
* {function} ：隐藏当前分页列表数据加载中状态展示，有默认方法。


##### config.showEmpty
空列表状态 > 显示 this[ListLoader]
* {function} ：当前分页列表为空时状态展示，有默认方法。

##### config.hideEmpty
空列表状态 > 隐藏（取消）this[ListLoader]
* {function} ：隐藏当前分页列表为空时状态展示，有默认方法。

##### config.showEnd
列表结束状态 > 显示 this[ListLoader]
* {function} ：当前分页列表加载完毕状态展示，有默认方法。

##### config.hideEnd
列表结束状态 > 隐藏
* {function} ：隐藏当前分页列表加载完毕状态展示，有默认方法。

##### config.scrollContainer
滚动容器 > 用于滚动加载模式
* {element}  ：滚动的容器，默认为documentElement

##### config.dpException
异常处理
* {function} ：数据加载出错处理

##### config.initList
加载时使用的参数列表
* {Object} ：默认为空

##### config.paramNames
默认接口交换参数名称
* {Object} ：配置调用分页接口时基础参数的名称
###### 默认值
```
paramNames:{
    pageSize:"page.pageSize",       // 页面大小
    pageNum:"page.pageNo"           // 页面编号
}
```

##### config.dataNames
默认接口交换数据路径
* {Object} ：配置调用分页接口时获得数据中列表的路径
###### 默认值
```
dataNames:{
    data:"page.dataList",           // 数据
    totalRow:"page.totalCount"      // 总数量
}
```

## Authors
- [wdzxc](https://github.com/wddd)
