假设我有类似的东西:
{{#each pageElements}}
{{#is pageElement "news"}}
{{#withSort pages "data.posted" dir="desc"}}
<a href="/{{relativeLink}}">
{{formatDate data.posted "%d.%m.%Y"}}: {{data.title}}
</a>
{{/withSort}}
{{/is}}
{{/each}}
我如何仅显示withSort
吐出的第一个项目?
我认为我可以使用first
收集帮助器(http://assemble.io/helpers/helpers-collections.html),但我无法正确使用语法。
答案 0 :(得分:1)
为grunt-assemble
而构建的把手助手 - 帮助者不会处理您为此特定案例要做的一些事情。
我们正在努力发布开发分支,其中一些将更容易用于把手子表达式。
现在,你可能想要自己做一个排序的助手,然后你就可以使用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;
}
}
在模板中注册帮助程序并使用汇编和使用:
{{#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}}
这应该得到你所需要的。希望它有所帮助。