入职一周左右发现项目中使用
ngTable
版本是v0.3.3,而github上ngTable
版本已经更新到v1.0.0,找到一篇v0.3.3的英文api进行翻译.同时抽出时间看看官方给出的例子总结了一下v0.3.3,希望可以帮到后续入职的新同学快速上手,老司机请绕路哈.
ngTable指令Config简介
ngTable
指令可以美化你的table
.它支持表格数据排序,过滤筛选和分页.当表格初始化完成后会自动带有头部和过滤器.
假如你想让ngTable
在IE9以下运行,你需要jQuery
:
|
|
ngTable
指令通过在table
标签上挂在ng-table
属性来启动.而ng-table
属性的值对应你挂载到scope
上的一个ngTableParams
实例化以后的对象.举个例子:
HTML:
|
|
Controller:
|
|
当对ngTableParams
进行实例化的时候,这个函数会接收两个参数parameters
和settings
.下面我们详细介绍一下这两个参数.
parameters
parameters
对象应该定义一些初始化的配置.更多复杂的配置应该在setting
对象中进行.下面这些属性可以被设置到parameters
对象中.
page
类型: Number
,默认值:1
表格展示第几页
count
类型: Number
,默认值:1
表格每一页展示多少数据
filter
类型: Object
,默认值:{}
定义表格列的过滤器.不区分大小写.举个例子,绑定一个下拉框作为表格的过滤器:
in view:
|
|
in controller:
|
|
in ngTableParams:
|
|
sorting
类型: Object
,默认值:{}
定义表格的列排序.举个例子,首先给出数据:
|
|
你可以通过设置sorting
定义一个表格名字的升序排列:
|
|
settings
total
类型: Number
,默认值: 0
定义表格数据的总数,通常为你需要渲染的Array数据的length.
counts
类型: Array
,默认值: [10,25,50,100]
定义表格每页显示数据数量的选项卡,可以通过设置一个空的数组来禁用这个功能.
defaultSort
类型: String
, 默认值: desc
, 可选项:["asc","desc"]
定义一个默认的排列顺序,当你点击一个之前没有被排序的列数据时,按照默认的排列顺序进行排序.
groupBy
类型: String | Function
定义表格数据分组.你可以设置groupBy
对数据进行分组:
|
|
或者通过传入回调函数设置你的分组规则:
|
|
关于
groupBy
的说明并不太懂,之后会上手几个demo看看
filterDelay
类型: Number
, 默认值: 750
定义一个表格过滤器参数变化时,数据被显示在表格中的延迟时间.例如,你先想要按键过滤器的延迟效果.
data
类型: Array
, 默认值: []
最初的数据集,由 {colname:value}
键值对组成的object
对象.
getData
类型: Function
定义一个方法处理要展示在ngTable
中的数据.ngTable
可以通过getData
传入的两个参数$defer
和params
进行回调.举个例子:
|
|
$defer
是一个Promise
对象.通过调用$defer
的resolve
方法传递data
数据到ngTable
.
举个例子,给出如下的data
:
|
|
通过这个最基础的方法,你可以让ngTable
获得data
数据:
|
|
params
对应的是你在parameters
对象中的配置(否则你再parameters
中也没有设置,就会使用ngTable
的默认配置);
举个例子,检索现在parameters
的filter
和sorting
的配置:
|
|
设置paramters
中的total
,你可以这样引用变量vm.tableParams.total(value)
.举个例子,在ngTable
中使用ajax
请求数据:
|
|