目前,我正在使用Javascript Parse.Object.extend查询结果,并将这些结果模板化为带有下划线的列表。
以下是查询Parse对象并将对象添加到Underscore模板的代码。
var Assignment = Parse.Object.extend("Assignments");
var query = new Parse.Query(Assignment);
query.descending('updatedAt');
query.find({
success: function(results) {
console.log("Success");
var tableTemplate = $("#list-template").html();
$("#assignmentdisplay").html(_.template(tableTemplate,{results:results}));
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
这是Underscore模板。
<script type="text/html" id='list-template'>
<% _.each(results,function(result){ %>
<li id="list-group-item">
<h4 class="list-group-item-heading"><%= result.get("Title") %></h4>
<p class="list-group-item-text"><%= result.get("Content") %></p>
<p class="list-group-item-text"><%= result.get("Categories") %></p>
</li>
<% }) %>
</script>
但是,我不明白如何在Parse和Underscore中对结果进行分页。
我已经尝试了backbone paginator,但我对Backbone不太满意,我只是不明白如何将它与Parse查询结合起来。
如果我必须使用另一个模板解决方案,或骨干分页器之外的其他分页解决方案,它也没关系。任何事都会有所帮助,我对这个分页很感兴趣。
修改
Parse.com有skip()和limit(),不知何故这被认为是有用的,但我不知道如何实现它。
答案 0 :(得分:29)
这里只是一个抽象的分页示例。应该说明这个概念,你可以调整它以适应你的具体情况。
// Set the current page number usually zero works great to start
// This is an arbitrary ex. but this value will come from your page (e.g. link etc.)
var page = 0;
// How much you want on a page
var displayLimit = 50;
// Get the count on a collection
var count;
myCollection.count().then(function(result){ count = result; });
// Your query
var Assignment = Parse.Object.extend("Assignments");
var query = new Parse.Query(Assignment);
query.descending('updatedAt');
query.limit(displayLimit);
query.skip(page * displayLimit);
// So with this above code, on page 0, you will get 50 results and skip 0 records.
// If your page var is 1, you'll skip the first 50 and get 50 results starting at 51
// So on so forth...
query.find()...
因此,您的链接可以以某种方式在其中编码页面数据,因为当您单击它时,您的函数将知道要跳转到哪个页面并获取相应的页面。 next / prev的概念是相同的。在接下来,您只需page++
,在上一页上,您可以执行page--
。
希望这有帮助。
编辑:
如果您想要执行类似于显示237的分配51-100的操作,则需要先执行.count()
以获取记录总数。
要获取起始编号,只需(page * displayLimit) + 1
要获得结束号,请记住,如果您在最后一页,您可能没有完整的50条记录或displayLimit。