如何从admin部分在keystone.js中创build页面

我是新的node.js以及keystone。 我想创build一个新的模型称为页面相同的职位是从梯形默认。

我创build的新模型是代码

var pages = new keystone.List('pages', { map: { name: 'title' }, autokey: { path: 'slug', from: 'title', unique: true } }); pages.add({ title: { type: String, required: true }, state: { type: Types.Select, options: 'draft, published, archived', default: 'published', index: true }, author: { type: Types.Relationship, ref: 'User', index: true }, publishedDate: { type: Types.Date, index: true, dependsOn: { state: 'published' } }, image: { type: Types.LocalFile, dest: 'public/uploads'}, content: { brief: { type: Types.Html, wysiwyg: true, height: 150 }, extended: { type: Types.Html, wysiwyg: true, height: 400 } }, }); pages.schema.virtual('content.full').get(function() { return this.content.extended || this.content.brief; }); pages.defaultColumns = 'title, state|20%, author|20%, publishedDate|20%'; pages.register(); 

然后我创build了一个页面的路线

 exports = module.exports = function(req, res) { var view = new keystone.View(req, res), locals = res.locals; // Init locals locals.section = 'pages'; locals.data = { pages: [] }; // Load the pages view.on('init', function(next) { var q = keystone.list('pages').paginate({ page: req.query.page || 1, perPage: 10, maxPages: 10 }) .where('state', 'published') .sort('-publishedDate'); q.exec(function(err, results) { locals.data.pages = results; next(err); }); }); // Render the view view.render('pages'); }; 

也创造了中间件

 { label: 'pages', key: 'pages', href: '/pages' } 

这一切我已经做了创build模型….让我知道我失踪。 当我从pages.jade文件通过以下代码调用这个:

 data.pages.title 

这没有显示任何东西。 甚至没有显示任何错误。 任何帮助将不胜感激。

q.exec()callback的results是一个数组,您将其分配给local.data.pages 。 因此,您的Jade模板中的data.pages.title是一个数组, data.pages.title将为null

你需要迭代返回的页面。 下面的例子将呈现页面标题,假设返回的结果数组不是空的。

 each page in data.pages p= page.title