使用 Ajax 加载 Keystone 中的帖子
Use Ajax to load posts in Keystone
我希望在到达文档底部后能够将前面的页面加载到当前页面中。我希望能够使用可重复使用的玉石部分..或类似的东西来做到这一点。
这都需要与 keystone.js 连接,因为它将为玉石部分提供数据
我会像这样创建 ajax 调用:
// Load more posts
var currentPage = 1;
function addNextPage(currentPage){
currentPage++;
var parameters = {
"currentPage": currentPage
};
$.get( "/addNextPage", parameters, function(data) {
$.each(data, function (key) {
$(".news").append(data);
});
});
}
var scrollNews = _.throttle(function(e) {
if($(window).scrollTop() + $(window).height() > $(document).height() - 300) {
addNextPage(currentPage);
}
}, 500);
window.addEventListener("scroll", scrollNews, false);
如何让 keystonejs 呈现并响应特定分页页面的部分内容?
您可以将其添加到您各自的路线页面
app.get("/addNextPage",function(req, res, next){
var view = new keystone.View(req, res),
locals = res.locals;
// Renit locals
locals.section = 'news';
locals.filters = {
category: req.params.category
};
locals.data = {
posts: [],
categories: []
};
var q = keystone.list('Post').paginate({
page: req.query.currentPage || 1,
perPage: 3
})
.where('state', 'published')
.sort('-publishedDate')
.populate('author categories');
q.exec( function(err, results) {
if (err) {
throw err;
} else {
console.log('Recieved posts for page');
locals.data.posts = results;
jade.renderFile('templates/partials/newsPost.jade', locals, function(err, results) {
if (err) {
throw err;
} else {
console.log('Rendered Jade');
globalRes(results)
}
});
}
});
function globalRes(results){
res.send(results);
}
});
我希望在到达文档底部后能够将前面的页面加载到当前页面中。我希望能够使用可重复使用的玉石部分..或类似的东西来做到这一点。
这都需要与 keystone.js 连接,因为它将为玉石部分提供数据
我会像这样创建 ajax 调用:
// Load more posts
var currentPage = 1;
function addNextPage(currentPage){
currentPage++;
var parameters = {
"currentPage": currentPage
};
$.get( "/addNextPage", parameters, function(data) {
$.each(data, function (key) {
$(".news").append(data);
});
});
}
var scrollNews = _.throttle(function(e) {
if($(window).scrollTop() + $(window).height() > $(document).height() - 300) {
addNextPage(currentPage);
}
}, 500);
window.addEventListener("scroll", scrollNews, false);
如何让 keystonejs 呈现并响应特定分页页面的部分内容?
您可以将其添加到您各自的路线页面
app.get("/addNextPage",function(req, res, next){
var view = new keystone.View(req, res),
locals = res.locals;
// Renit locals
locals.section = 'news';
locals.filters = {
category: req.params.category
};
locals.data = {
posts: [],
categories: []
};
var q = keystone.list('Post').paginate({
page: req.query.currentPage || 1,
perPage: 3
})
.where('state', 'published')
.sort('-publishedDate')
.populate('author categories');
q.exec( function(err, results) {
if (err) {
throw err;
} else {
console.log('Recieved posts for page');
locals.data.posts = results;
jade.renderFile('templates/partials/newsPost.jade', locals, function(err, results) {
if (err) {
throw err;
} else {
console.log('Rendered Jade');
globalRes(results)
}
});
}
});
function globalRes(results){
res.send(results);
}
});