Shopify使用Liquid脚本对cart.items数组进行排序

时间:2013-08-23 00:17:59

标签: shopify liquid liquid-layout

我想在cart.liquid文件中对cart.items数组进行排序。然后我可以按预期的顺序显示表格中的时间。

    {% for item in cart.items sort_by:item.line_price %}
    <div class="row">
      <div class="span12">
      <h1>Your cart</h1>
      <form action="/cart" method="post" id="cartform">
        <table>
        </table>
      </form>
      </div>
    </div>
    {% endfor %}

但由于我无法在sort_by:item.line_price语句中使用for,因此代码无效。

如何使用内置功能对数组进行排序?

另一个问题是Shopify液体不支持创建阵列。如果我使用自己的算法对数组进行排序。但是如何将输出保存到新阵列?

非常感谢。

2 个答案:

答案 0 :(得分:6)

Shopify有sort filter表示“一系列哈希或丢弃”。你可以这样使用它:

{% assign cart_items = cart.items | sort: "line_price" %}
{% for item in cart_items %}
- {{item.title}} {{item.line_price}}<br/>
{% endfor %}

答案 1 :(得分:2)

您可以将数据呈现为Javascript数据结构,然后对其进行排序。在Javascript中使用模板。 Handlebars.js效果很好。没有内置排序。