【问题标题】:How can I reverse the ordering of spacebars #each block如何反转空格键#each块的顺序
【发布时间】:2015-07-22 03:19:52
【问题描述】:

帮助器sentencesList 是一个包含元素text 的对象数组。

HTML:

{{#each sentencesList}}
  {{text}}
{{/each}}

CLIENT.JS

sentencesList: function() {
    return Session.get(SENTENCES)
}

如何颠倒排序,即最高索引号显示在顶部,索引位置 0 的元素在底部?

【问题讨论】:

标签: javascript meteor spacebars


【解决方案1】:

你可以reverse数组:

sentencesList: function() {
    return Session.get(SENTENCES).reverse();
}

请注意:虽然{{#each}} 对数组和游标都有效,但此方法是特定于数组的。所以你不能在Collection.find() 调用返回时使用它。要通过集合实现此目的,您必须在要反转顺序的键上使用 sort

【讨论】:

    【解决方案2】:

    如果你想反转多个数组,你可以在(比如)main.js 中创建一个通用帮助器:

    Template.registerHelper('reverseArray', (array) => array.reverse());
    

    在您的模板中:

    {{#each (reverseArray sentencesList)}}
      {{text}}
    {{/each}}
    

    编辑:根据 Pierre 的评论更新代码以包含括号

    【讨论】:

    • 感谢这个想法。顺便说一句:我必须在子表达式周围加上括号才能使其工作:{{#each (reverseArray sentenceList)}}