codecamp

用于分页的保留属性名

下面的属性位于_data_对象中,用来给一列数据分页。一些语言和概念是从OpenSearch规范中借鉴过来的。

下面的分页数据允许各种风格的分页,包括:

  • 上一页/下一页 - 允许用户在列表中前进和后退,一次一页。nextLink 和_previousLink_属性 (下面的"链接保留属性名"部分有描述) 用于这种风格的分页。
  • 基于索引的分页 - 允许用户直接跳到条目列表的某个条目位置。例如,要从第200个条目开始载入10个新的条目,开发者可以给用户提供一个URL的查询字符串?startIndex=200
  • 基于页面的分页 - 允许用户直接跳到条目内的具体页。这跟基于索引的分页很类似,但节省了开发者额外的步骤,不需再为新一页的条目计算条目索引。例如,开发人员可以直接跳到第20页,而不是跳到第200条条目。基于页面分页的网址,可以使用查询字符串_?page=1?page=20_。_pageIndex_和 totalPages 属性用作这种风格的分页.

在这份指南的最后可以找到如何使用这些属性来实现分页的例子。

data.currentItemCount

属性值类型: 整数(integer)
父节点: data

结果集中的条目数目。应该与items.length相等,并作为一个便利属性提供。例如,假设开发者请求一组搜索条目,并且要求每页10条。查询集共有14条。第一个条目页将会有10个条目,因此_itemsPerPage_和_currentItemCount_都应该等于10。下一页的条目还剩下4条;_itemsPerPage_仍然是10,但是_currentItemCount_是4.

示例:

{
  "data": {
    // "itemsPerPage" 不需要与 "currentItemCount" 匹配
    "itemsPerPage": 10,
    "currentItemCount": 4
  }
}

data.itemsPerPage

属性值类型: 整数(integer)
父节点: data

items结果的数目。未必是data.items数组的大小;如果我们查看的是最后一页,data.items的大小可能小于itemsPerPage。但是,data.items的大小不应超过itemsPerPage

示例:

{
  "data": {
    "itemsPerPage": 10
  }
}

data.startIndex

属性值类型: 整数(integer)
父节点: data

data.items中第一个条目的索引。为了一致,_startIndex_应从1开始。例如,第一组items中第一条的_startIndex_应该是1。如果用户请求下一组数据,_startIndex_可能是10。

示例:

{
  "data": {
    "startIndex": 1
  }
}

data.totalItemsx

属性值类型: 整数(integer)
父节点: data

当前集合中可用的总条目数。例如,如果用户有100篇博客文章,响应可能只包含10篇,但是_totalItems_应该是100。

示例:

{
  "data": {
    "totalItems": 100
  }
}

data.pagingLinkTemplate

属性值类型: 字符串(string)
父节点: data

URL模板指出用户可以如何计算随后的分页链接。URL模板中也包含一些保留变量名:表示要载入的条目的{index},和要载入的页面的{pageIndex}

示例:

{
  "data": {
    "pagingLinkTemplate": "http://www.google.com/search/hl=en&q=chicago+style+pizza&start={index}&sa=N"
  }
}

data.pageIndex

属性值类型: 整数(integer)
父节点: data

条目的当前页索引。为了一致,_pageIndex_应从1开始。例如,第一页的_pageIndex_是1。_pageIndex_也可以通过基于条目的分页而计算出来pageIndex = floor(startIndex / itemsPerPage) + 1

示例:

{
  "data": {
    "pageIndex": 1
  }
}

data.totalPages

属性值类型: 整数(integer)
父节点: data

当前结果集中的总页数。_totalPages_也可以通过上面基于条目的分页属性计算出来: totalPages = ceiling(totalItems / itemsPerPage).

示例:

{
  "data": {
    "totalPages": 50
  }
}
data对象的保留属性名
用于链接的保留属性名
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }