2016-02-06 45 views
0

我希望能够在到达文档底部时将较早的页面加载到当前页面。我希望能够用可重复使用的玉石部分来做到这一点......或类似的东西。使用Ajax在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呈现并响应特定分页页面的部分内容?

回答

3

你会添加到您的各自的路线页面

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); 
    } 
}); 
+2

它是当你不断地回答自己的问题乐趣却少了 –