Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pagination 带有分页的ember.js rest api_Pagination_Ember.js_Ember Data - Fatal编程技术网

Pagination 带有分页的ember.js rest api

Pagination 带有分页的ember.js rest api,pagination,ember.js,ember-data,Pagination,Ember.js,Ember Data,目前,我对如何使用余烬数据实现分页毫无意义。我发现,我可以返回“meta”属性作为响应,余烬数据不会抛出错误。但我只是不知道如何访问它,也不知道这个财产的目的是什么 互联网上为数不多的几个例子假设我已经将整个收藏加载到了ember,或者他们做了一些小技巧,做了无限滚动,这不需要关于页面计数的信息 我认为加载所有记录时,如果有

目前,我对如何使用余烬数据实现分页毫无意义。我发现,我可以返回“meta”属性作为响应,余烬数据不会抛出错误。但我只是不知道如何访问它,也不知道这个财产的目的是什么

互联网上为数不多的几个例子假设我已经将整个收藏加载到了ember,或者他们做了一些小技巧,做了无限滚动,这不需要关于页面计数的信息

我认为加载所有记录时,如果有<1k的记录就可以了,但有时我会处理大量数据(比如apache日志)。然后呢

所以基本上,我想使用余烬和余烬数据来构建我的第一个实际应用程序,但我认为这不是一个好主意


好的,那么有人知道如何解决这个基本但复杂的问题吗?:)

好的,下面是一些让你开始的想法

首先,您必须从路由开始,并将页码作为动态参数

this.resource('posts', { path: '/posts/:page' };
然后,由于我没有使用Silex的经验,您需要支持一些可用于分页的服务器端参数。例如,
offset
limit
其中第一个表示要跳过多少条记录,第二个表示要从中选择多少条记录。理想情况下,您应该将它们实现为查询参数,如
?offset=0&limit=10

然后,您只需按如下方式实现表路由:

App.TableRoute = Ember.Route.extend({
    model: function (params) {
        return App.Post.find({ offset: (params.page - 1) * 10, limit: 10  });
    }
});

然后,您可以开始做一些更神奇的事情,创建每页的项目参数,或者通过提前获取所有记录的编号来验证页码。

您使用的是RC1和ember data rev 11吗?另外,您使用的适配器是什么?你有什么服务器后端?你需要每一页都尊重历史和后退按钮吗。github跟踪器上也有一些。@Toran Billups:所有最新的都是从github repos获取的。非常感谢链接!至于后端:它是基于的简单解决方案。历史和后退按钮会很好。谢谢你的回答,但我切换到angular.js。在我看来,它比Ember.js好得多——一切都可以用karma runner和jasmine很好地测试。