// 渲染函数
function renderTpl(tplSelector, data, htmlSelector) {
var t = $(tplSelector).html(),
f = Handlebars.compile(t),
h = f(data);
$(htmlSelector).html(h);
}
// helper的写法
Handlebars.registerHelper({
addOne: function(index) {
return index+1;
},
transformat: function(value) {
if(value == 0){
return "男";
}else{
return "女";
}
}
});
// 构造分页数组
function formatPag(pagData, curPage) {
var arr = [];
var total = pagData;
var cur = curPage;
// 处理到上一页的逻辑
var pre = {};
pre.index = cur - 1;
pre.text = '‹';
if (cur != 1) {
pre.clickable = true;
}
arr.push(pre);
// 处理到cur页前的逻辑
if (cur <= 3) {
for (var i = 1; i < cur; i++) {
var pag = {};
pag.text = i;
pag.index = i;
pag.clickable = true;
arr.push(pag);
}
} else {
// 如果cur>5,那么cur前的页要显示为...
var pag = {};
pag.text = 1;
pag.index = 1;
pag.clickable = true;
arr.push(pag);
var pag = {};
pag.text = '...';
arr.push(pag);
// 当前页前面2个页数显示出来
for (var i = cur - 1; i < cur; i++) {
var pag = {};
pag.text = i;
pag.index = i;
pag.clickable = true;
arr.push(pag);
}
}
// 处理当前页
var pag = {};
pag.text = cur;
pag.index = cur;
pag.cur = true;
arr.push(pag);
// 处理cur页后的逻辑
if (cur >= total - 2) {
for (var i = cur + 1; i <= total; i++) {
var pag = {};
pag.text = i;
pag.index = i;
pag.clickable = true;
arr.push(pag);
}
} else {
// 如果cur < total - 4, 那么cur后的页面显示为...
// 显示以当前页后面的2个页数
for (var i = cur + 1; i < cur + 2; i++) {
var pag = {};
pag.text = i;
pag.index = i;
pag.clickable = true;
arr.push(pag);
}
var pag = {};
pag.text = '...';
arr.push(pag);
var pag = {};
pag.text = total;
pag.index = total;
pag.clickable = true;
arr.push(pag);
}
// 处理到下一页的逻辑
var next = {};
next.index = cur + 1;
next.text = '›';
if (cur != total) {
next.clickable = true;
}
arr.push(next);
return arr;
}
使用handlebars渲染分页组件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天要实现一个和tabNavigator 类似功能的选择框问题 下面是碰到一段代码: 然后发现一个问题,就是两个相...
- 一、组件、ReactElement、组件实例的区别 概念上的区别 组件是一个函数或者一个类,它决定了如何把数据变成...
- 前言 分页其实很容易实现,我自己写了一个简单的分页组件,可以实现上下翻页,输入页码跳转到指定页,刷新页面后不会回到...
- 原文地址:https://doterlin.github.io/blog/2016/12/24/vue-pager...