【问题标题】:Business Catalyst Liquid sorting商业催化剂液体分选
【发布时间】:2015-12-06 05:22:30
【问题描述】:

我可以看到 Liquid 允许您使用以下语法对集合进行排序:

{% assign sorted_items = items.all|sort:'Email' %}

{% for item in sorted_items %}
  <div>Name: {{item.name}}</div>
  <div>Email: {{item.email}}</div>
{% endfor %} 

但是,这在 Business Catalyst 中似乎不起作用。

如果我使用它来将结果呈现到页面,它只会呈现“null”。

{{sorted_items | json }}

我应该能够在 Business Catalyst 中做到这一点,还是我完全浪费时间试图找到一种解决方案来对我的 WebApp 数据进行排序?

【问题讨论】:

  • 看起来它没有实现,根据 BC 论坛上的讨论:forums.adobe.com/thread/1711721
  • 这个问题可以改进为包括“Web App”作为问题的一部分,例如“Business Catalyst Liquid Sorting Web App Items”。目前尚不清楚您要对哪些数据进行排序。您是否尝试按电子邮件地址的字母顺序对 Web 应用程序数据进行排序?因为“按字母顺序”也不包含在您的问题中...

标签: sorting liquid business-catalyst


【解决方案1】:

您可以像这样对数据进行排序:

{module_data resource="customers" version="v3" fields="firstName,email1" collection="myData"}
<pre>{{myData|json}}</pre>

{% capture emails -%} 
{% for item in myData.items -%}
,{{ item.email1.value }} - {{ item.firstName }};
{% endfor %}
{% endcapture %}
<pre>{{ emails | split: "," | sort }}</pre>

逗号不是拼写错误:)

将字符串拆分为数组后,您可以对它做任何您需要做的事情。

【讨论】:

    【解决方案2】:

    Daut 的回答不好。 for 循环中的任何解决方案都只会对从模块中获取的项目数进行排序,最大数量为 500。 如果您使用的是 module_data,您只需使用它的实际排序!

    {module_data resource="customers" version="v3" order="firstName" fields="firstName,email1" collection="myData"}

    module_data 支持 WHERE 过滤和 ORDER 排序结果。

    【讨论】:

    • 有人问你如何订购。 module_data 和给定的循环过滤器。这是行不通的。我通过模块中的用户订单选项说明了原因并给出了实际的解决方案。所以这就是答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    相关资源
    最近更新 更多