使用 Iron router 和 Pagination.collection() 为流星应用程序设置简单的分页?
Setting up simple pagination for a meteor app using Iron router and Pagination.collection()?
你好,我有一个简单的应用程序列表帖子,我正在努力使用 Iron Router 和 Meteor Pagination 添加一个简单的分页:https://github.com/egtann/meteor-pagination
我的 index.js 中有以下内容:
if (Meteor.isClient) {
Template.index.helpers({
posts: function () {
return Posts.find({}, {sort: {voteResult: -1}});
},
}
因此要在 index.html 中显示我正在使用 {{#each posts}}
的帖子,如下所示:
<template name="index">
<ul>
{{#each posts}}
<li>
{{text}}
</li>
{{/each}}
</ul>
<!-- pagination BOOTSTRAP CSS -->
<!-- <div class="text-center">
<ul class="pagination_bis">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="active_bis"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</div> -->
</template>
这是我的 route.js:
Router.configure({
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
layoutTemplate: 'layout'
});
Router.route('/', function() {
this.render('index');
});
我的问题:
- 如何在 routes.js (Iron Router) 中定义我的路由以实现简单的分页?
- 如何使用 Meteor Pagination(link 上面提供的)帮助程序在我的 index.js 中使用路由,以便它 returns 只有有限数量的帖子基于每页基础 ?
- 如何将此逻辑连接到视图 (index.html)?
我尝试按照我上面提供的 link 的示例进行操作,但我很困惑,他们使用的 Meteor 版本已被弃用。不用说,我是 Meteor 的新手,每一个输入都非常感谢。供您参考,应用程序事件运行良好,我设法保存和删除帖子,为测试分页创建了 30 多个帖子。谢谢。
我不会使用不再维护的包(egtann:meteor-pagination
的最后一次提交是 2 年前)。
而是简单地尝试 alethes:pages
(GitHub project)。似乎也有很好的记录。
至于路由器。您可能必须使用 URL 参数(如果您想通过 URL 直接访问特定页面 - 例如第 5 页的 /posts/5/
):
Router.route('/posts/:page', function () {
var pageId = this.params.page;
...
});
对于初学者来说,这是了解动态路线以及如何在 Meteor 路线中使用数据的绝佳资源:http://meteortips.com/tutorial/iron-router-part-2/
你好,我有一个简单的应用程序列表帖子,我正在努力使用 Iron Router 和 Meteor Pagination 添加一个简单的分页:https://github.com/egtann/meteor-pagination
我的 index.js 中有以下内容:
if (Meteor.isClient) {
Template.index.helpers({
posts: function () {
return Posts.find({}, {sort: {voteResult: -1}});
},
}
因此要在 index.html 中显示我正在使用 {{#each posts}}
的帖子,如下所示:
<template name="index">
<ul>
{{#each posts}}
<li>
{{text}}
</li>
{{/each}}
</ul>
<!-- pagination BOOTSTRAP CSS -->
<!-- <div class="text-center">
<ul class="pagination_bis">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li class="active_bis"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</div> -->
</template>
这是我的 route.js:
Router.configure({
loadingTemplate: 'loading',
notFoundTemplate: 'notFound',
layoutTemplate: 'layout'
});
Router.route('/', function() {
this.render('index');
});
我的问题:
- 如何在 routes.js (Iron Router) 中定义我的路由以实现简单的分页?
- 如何使用 Meteor Pagination(link 上面提供的)帮助程序在我的 index.js 中使用路由,以便它 returns 只有有限数量的帖子基于每页基础 ?
- 如何将此逻辑连接到视图 (index.html)?
我尝试按照我上面提供的 link 的示例进行操作,但我很困惑,他们使用的 Meteor 版本已被弃用。不用说,我是 Meteor 的新手,每一个输入都非常感谢。供您参考,应用程序事件运行良好,我设法保存和删除帖子,为测试分页创建了 30 多个帖子。谢谢。
我不会使用不再维护的包(egtann:meteor-pagination
的最后一次提交是 2 年前)。
而是简单地尝试 alethes:pages
(GitHub project)。似乎也有很好的记录。
至于路由器。您可能必须使用 URL 参数(如果您想通过 URL 直接访问特定页面 - 例如第 5 页的 /posts/5/
):
Router.route('/posts/:page', function () {
var pageId = this.params.page;
...
});
对于初学者来说,这是了解动态路线以及如何在 Meteor 路线中使用数据的绝佳资源:http://meteortips.com/tutorial/iron-router-part-2/