Mai*_*ine 8

dojocampus的一个例子展示了一种方式.这里,fetchwithout query参数返回商店中的所有商品.

var store = new some.Datastore();
var gotItems = function(items, request){
  console.log("Number of items located: " + items.length);
};
store.fetch({onComplete: gotItems});
Run Code Online (Sandbox Code Playgroud)


tom*_*yjr 1

任何数据存储的线路数据的格式都是完全特定于存储的。为了让您获得项目总数(和其他元数据),必须将其作为响应的一部分返回。这是进行服务器端分页的唯一方法。

我实现的所有商店都希望数据包含一个totalCount属性,如下所示:

{
  identifier: 'id',
  items: [
    { id: 123, name: 'aaa', ... },
    { id: 456, name: 'bbb', ... },
    ...
  ],
  totalCount: 525
}
Run Code Online (Sandbox Code Playgroud)

当查询返回时,存储会保存此信息(在 中onComplete)。getTotalCount()然后通过存储中的方法公开该值。

start当与和request 选项结合使用时count,这可以让您获得漂亮的 ajax 分页(“显示 525 中的 1-50”)。

由于这不是 API 的一部分,因此读取 API 的核心实现不会实现它。这种技术的一种形式(类似于我所做的)似乎是由 实现的dojo.data.QueryReadStore,因此您也可以在那里查看。