handlebars-helpers 中的 helpersgrunt-assemble
无法处理您希望针对此特定情况执行的某些操作。
我们正在努力发布 dev 分支,其中一些将更容易与车把子表达式一起使用。
现在,您可能想要创建自己的帮手来进行排序,然后您可以使用first
:
制作一个sort.js
帮助文件:
var get = require('get-value');
module.exports = function sort(array, field, options) {
var arr = cloneArray(array);
if (typeof options === 'undefined') {
options = field;
field = null;
arr = arr.sort();
} else {
arr = arr.sort(sortBy(field));
}
if (options.hash && options.hash.dir === 'desc') {
arr = arr.reverse();
}
return arr;
};
function cloneArray(arr) {
var len = arr.length, i = 0;
var results = new Array(len);
while(i++ < len) {
results[i] = arr[i++];
}
return results;
}
function sortBy(prop) {
return function(a, b) {
var aVal = get(a, prop);
var bVal = get(b, prop);
if (aVal > bVal) {
return 1;
} else {
if (aVal < bVal) {
return -1;
}
}
return 0;
}
}
使用 assemble 注册 helper 并在模板中使用:
{{#each pageElements}}
{{#is pageElement "news"}}
{{#withFirst (sort pages "data.posted" dir="desc")}}
<a href="/{{relativeLink}}">
{{formatDate data.posted "%d.%m.%Y"}}: {{data.title}}
</a>
{{/withFirst}}
{{/is}}
{{/each}}
这应该得到你所需要的。希望能帮助到你。