我有简单的分页功能,可以输出数组。
exports.pagination = function(currentPage, nrOfPages) {
var delta = 1,
range = [],
rangeWithDots = [],
l;
range.push(1);
if (nrOfPages <= 1){
return range;
}
for (let i = currentPage - delta; i <= currentPage + delta; i++) {
if (i < nrOfPages && i > 1) {
range.push(i);
}
}
range.push(nrOfPages);
for (let i of range) {
if (l) {
if (i - l == 2) {
rangeWithDots.push(l + 1);
} else if (i - l !== 1) {
rangeWithDots.push('...');
}
}
rangeWithDots.push(i);
l = i;
}
return rangeWithDots;
}
车把:
{{#each pagination}}
<li class="paginator-item">
<a href="{{this}}" class="paginator-itemLink">{{this}}</a>
</li>
{{/each}}
输出:
1 ... 7 8 9 ... 19
效果很好。但是我想做的是将“数字”和“ href”分开 这样我就可以使用
{{#each pagination}}
<li class="paginator-item">
<a href="{{this.href}}" class="paginator-itemLink">{{this.number}}</a>
</li>
{{/each}}
但是不知道我该怎么做却无法做到。找不到正确的方法。
rangeWithDots.push(number:'...',href:'')
。尝试了很多事情,但找不到正确的方法
答案 0 :(得分:2)
您可以将其推送为包含多个属性的对象。
因此,您可以通过访问对象和相应的属性来读取数组中的内容。
我希望这可以解决问题。
var rangeWithDots = []
rangeWithDots.push({href: "/sample", number: 5})
console.log(rangeWithDots)
//you can access the number by
console.log("number", rangeWithDots[0].number)
答案 1 :(得分:1)
您几乎是对的!您只需要包装参数即可使用{...}
将其作为对象推送:
rangeWithDots.push({ number: ..., href: '...' });