Coder Social home page Coder Social logo

Comments (3)

steveostudios avatar steveostudios commented on July 2, 2024

In the settings.js file, change two things:

change
for (var p = 1; p < pages; p++) {
to
for (var p = 0; p < pages; p++) {

and
tr += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">'+ p +'</a></li>'
to
tr += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">'+ (p+1) +'</a></li>'

from node-express-mongoose-demo.

madhums avatar madhums commented on July 2, 2024

I have refactored a bit, refer config/middlewares/view.js#L11, you should change it there...

from node-express-mongoose-demo.

jxnuzhangwen avatar jxnuzhangwen commented on July 2, 2024

Hi ryandesign,

you can try this.

Dear madhums,
thank's for your great effort. you give me a great help.

----------------------------model---------------------------
list: function (options, cb) {
var criteria = options.criteria || {}

this.find(criteria)
  .populate('user', 'name')
  .sort({'createdAt': -1}) // sort by date
  .limit(options.perPage)
  .skip(options.perPage * (options.page -1))
  .exec(cb)

}

-----------------------controller---------------------------------------
exports.index = function(req, res){
var page = req.param('page') > 1 ? req.param('page') : 1
page = page*1;
var perPage = 10
var options = {
perPage: perPage,
page: page
}

Article.list(options, function(err, articles) {
if (err) return res.render('500')
Article.count().exec(function (err, count) {
res.render('articles/index', {
title: 'List of Articles',
articles: articles,
page: page,
count: count,
fromPage: perPage_(page-1)+1,
toPage: (perPage_page) < count ? (perPage*page) : count,
pages: Math.ceil(count / perPage)
})
})
})
}

----------------------------------view helper
function createPagination (req) {
return function createPagination (pages, page) {
// clas表示page是激活还是不激活状态,激活状态显示灰色
var clas = "no";
//确保page为数字,page是分页的当前页
page = page*1;
var params = qs.parse(url.parse(req.url).query)
var str = ''
//showPages定义了分页显示几页。
var showPages = 3;
//fromPage定义了分页的开始页
var fromPage = 1;
// toPage定义了分页的结束页
var toPage = (fromPage + showPages - 1);
// 在确保当前页不超过总页数的情况下,重新计算开始页和结束页,并确保结束页不超过总页数
if( page <= pages){
if (page > showPages){
fromPage = Math.floor((page-1)/showPages) * showPages + 1;
toPage = (fromPage + showPages -1);
}
if (toPage>pages){
toPage = pages;
}
}
// 绘制分页中的往前页,根据当前页减一
if(page > 1){
params.page = (page -1);
clas = "no";
}
else{
params.page = page;
clas = "active";
}
str += '

  • ←往前
  • '
    // 绘制分页中的每一页,如果是当前页,将其设置为激活状态
    for (var p = fromPage; p <= toPage; p++) {
    params.page = p
    clas = page == p ? "active" : "no"
    str += '
  • '+ p +'
  • '
    }
    //根据当前页加+的方式设置往后页
    if(page < pages){
    params.page = (page+1);
    clas = "no";
    }
    else{
    clas = "active" ;
    }
    str += '
  • 往后→
  • '
    return str;
    }
    }

    from node-express-mongoose-demo.

    Related Issues (20)

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.