1.添加分页库:
meteor add alethes:pages
2.新建分页:
Pages = new Meteor.Pagination("collection-name")
3.设定(分通用/客户端/服务端):
客户端:
- dataMargin (Number, default = 3) - 临近页面预取缓存页数.
- filters (Object, default = {}) - MongoDB find query object, eg.
{name: {$lt: 5}}
- itemTemplate (String, default = "paginateItemDefault") - 用于条目像显示的模板名称. 默认将列出条目的所有属性。
- navShowEdges (Boolean, default = false) - 是否在导航面板中显示首、末页链接 («) .
- navShowFirst (Boolean, default = true) - 是否在导航面板中显示首页链接 («) .
- navShowLast (Boolean, default = true) - 是否在导航面板中显示末页链接 (») .
- onReloadPage1 (Boolean, default = false) - 是否因设置改变(eg. new sorting order)导致重新加载数据后导航至页面1。
- paginationMargin (Number, default = 3) - 在导航面板中显示的临近页面链接数目。
- perPage (Number, default = 10) - 每页显示条目数目 or 无限翻滚模式每次请求加载数 (不能大于服务端pageSizeLimit值)
- requestTimeout (Number, default = 3) - 重试前响应等待时间,单位:秒 (主要用于页面中有多个集合时)。
- route (String, default = "/page/") - 后续页面路由前缀 (eg. "/page/" gives "/page/1", "/page/2" etc.)
- router (String, default = **undefined)** - 三个选项:
- true - 由用户独立设定使用的路由
- false - 不使用路由
- "iron-router" - 使用iron-route并且Pages库自动设置路径
- routerTemplate (String, default = "pages") - iron-router用来生成分页的模板
- routerLayout (String, default = "layout") - iron-router用来生成分页的布局
- sort (Object, default = {}) - MongoDB sort determining object, eg. {name: 1}
- templateName (String, default = "") - 使用的模板的名字. 末尾与集合名保持一致.
服务端:
-
auth (Function, default = undefined) - 由内建发布方法调用的授权函数,参数有:
- skip - 预先计算条目数量,跳过基于正在发布的页面数. 返回游标时使用.
- subscription - the Meteor subscription object (this in Meteor.publish()). 在已验证的连接中, subscription.userId 记录当前登录用户的 _id. 否则为 null. Pagination对象上下文调用授权函数. 总页数不是必须的,并且页面依赖性授权规则会是总数计算无效,所以不显示页数. 总页数用于正确显示导航控件.
授权函数的返回值为:
- true - 授权对分页集合的无限制访问
- a falsy value - 拒绝对分页集合的访问
- a Number - 发布页码小于特定数值的页面 (页码始于1).
- an Array of the form: [filters, options] - 发布
this.Collection.find(*filters*, *option*)
- a Mongo.Collection.Cursor (or some other cursor with a compatible interface) -发布该游标.
- an Array of Mongo.Collection.Cursor objects (or some others cursor with a compatible interface) - 发布游标数组. 发布一个游标或游标数组时,必须手动设置 realFilters (用于发布的filters; 有时与客户端可见的过滤器不同) or nPublishedPages (显式标识已发布页面的数量) 以正确绘制导航控件.大多数情况下推荐返回过滤器和选项的数组(选项4).
- availableSettings (Object, default = {}) - 定义由客户端发起的设置改变规则.有效的实体通过键引用设置的名字,并提供如下值:
- true - 允许对设置的所有改变 (if not otherwise limited by constraints such as
pageSizeLimit
) - a falsy value - 显式拒绝所有修改.
- a Function - 定义设置修改策略.
- divWrapper (String, Boolean, default = "pageCont") - 在未启用table模式下设置该属性, 分页页面被包装进提供class名称的div元素中
- fastRender (Boolean, default = false) - 设置是否使用fast-render package加速页面加载
- homeRoute (String, default = "/") - if "iron-router" is enabled, the specified route sets currentPage to 1
- infinite (Boolean, default = false) - infinite scrolling
- infiniteItemsLimit (Number, default = Infinity) - ‘无限加载’模式下每次加载的最大条目数量. 设置后只有最新的n条将显示在页面上.
- infiniteRateLimit (Number, default = 1) - 设置无限加载模式下后续页面变化之间的最小时间间隔 (in seconds)
- infiniteTrigger (Number, default = .8) - 在无限加载模式下,设置请求的新数据部分与页面底部的距离 (for val > 1: in pixels, for 0 > val >= 1: in (1 - percent))
- navTemplate (String, default = "_pagesNav") - 用于分页导航的模板名称
- onDeniedSetting (Function, logs "Changing {{setting}} not allowed." to console by default) - called when the setting is unavailable to the client (based on the rules defined in #availableSettings() or lack thereof).
- pageTemplate (String, default = "_pagesPage") - 显示条目页面的模板名称
- pageSizeLimit (Number, default = 60) -限制每页显示的最大条目数
- rateLimit (Number, default = 1) - 设置后续页面之间改变的最小时间间隔(以秒为单位)
- routeSettings (Function, default = undefined) - 可选函数,当启用iron-router时,在onBeforeAction中被route对象(this in onBeforeAction) 作为参数调用 (Pagination对象上下文) . 该函数能够基于route的参数(see iron-router example, view 3)修改分页设置 (eg. filters).
- table (Object, Boolean, default = false) - 从分页集合生成表格.属性有:
- fields (Array, required) - an array of fields to be displayed in subsequent columns of the table
- class (String, default = "") - 表格的class名称
- header (Array, default = fields) - 表头标签数组.
- wrapper (String, Boolean, default = false) - 可选的 <div> 封装的class名称. 未设置时不生成封装.