Comments (3)
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.
I have refactored a bit, refer config/middlewares/view.js#L11, you should change it there...
from node-express-mongoose-demo.
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 += '
}
//根据当前页加+的方式设置往后页
if(page < pages){
params.page = (page+1);
clas = "no";
}
else{
clas = "active" ;
}
str += '
return str;
}
}
from node-express-mongoose-demo.
Related Issues (20)
- An in-range update of babel-eslint is breaking the build 🚨 HOT 3
- Cannot read property 'on' of undefined HOT 2
- An in-range update of multer is breaking the build 🚨 HOT 1
- [nodemon] app crashed - waiting for file changes before starting... HOT 2
- An in-range update of compression is breaking the build 🚨 HOT 1
- An in-range update of supertest is breaking the build 🚨 HOT 5
- An in-range update of morgan is breaking the build 🚨 HOT 1
- User validation failed: email: fn is not a function HOT 2
- An in-range update of cors is breaking the build 🚨 HOT 1
- An in-range update of connect-mongo is breaking the build 🚨 HOT 2
- TypeError: Cannot read property 'on' of undefined in server.js file HOT 2
- An in-range update of cookie-parser is breaking the build 🚨 HOT 1
- Remove $ from bash codeblocks
- Catch block only checks 422 validation error HOT 1
- (node:54610) UnhandledPromiseRejectionWarning: MongoError: not authorized HOT 2
- docker security flaw
- Error running the project on local HOT 2
- req.user problem HOT 3
- Responsible disclosure policy HOT 2
- how to remove cannot get error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-express-mongoose-demo.