我正在尝试在 keystone js 中实现分页,并且我正在执行以下操作:
模型
var keystone = require('keystone');
var Types = keystone.Field.Types;
var Test = new keystone.List('Test', {
map: {name: 'title'},
label: 'Test',
singular: 'Test',
plural: 'Tests',
autokey: {path: 'slug', from: 'title', unique: true}
});
Test.add({
description: {type: Types.Html, wysiwyg: true, height: 300 }
});
Test.register();
路线/视图
var keystone = require('keystone');
var Test = keystone.list('Test');
exports = module.exports = function(req, res) {
var view = new keystone.View(req, res);
var locals = res.locals;
// Set locals
locals.section = 'test';
locals.data = {
test: []
};
Test.paginate({
page: req.query.page || 1,
perPage: 2,
maxPages: 5
})
.exec(function(err, results) {
locals.data.test = results;
next(err);
});
// Load All Terms
view.query('test', keystone.list('Test').model.find());
// Render view
view.render('test');
}
在 Index.js 中
app.all('/test', routes.views.test);
在中间件.js
res.locals.navLinksFooter = [
{ label: 'Test', key: 'test', href: '/test' },
.....
];
模板
<div class="row">
<div class="col-xs-12">
<span class="pull-right">
{{>pagination}}
</span>
</div>
</div>
<div class="row row-content panel--outer panel--outer--trans">
<div class="col-xs-12" id="panel--news-detail">
{{# each test}}
<p>{{{description}}}</p>
{{/each}}
</div>
</div>
不幸的是,当我尝试转到该页面时,我收到以下错误:
“ReferenceError:未定义下一个”
一些指针和可能的原因。我已经使用以下方法在单独的页面上为博客文章设置了分页:
locals.data = {
test: []
};
如果我注释掉“next(err)”,分页按钮就会出现,但单击箭头会将我带到博客/新闻项目的第二页。
事情显然在这里的某个地方搞混了。我怀疑这是由于我对当地人处理不当,但我似乎无法在基石网站上找到任何关于当地人应该如何工作的深入解释。
我最终想对 mongo 集合应用不同的过滤器,并让它在一系列引导选项卡中运行,但我认为我需要先整理好基础知识。
有没有人遇到过类似的情况并能够找到解决方案?