Business Catalyst液体排序

3

我看到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论坛上的讨论:https://forums.adobe.com/thread/1711721 - Robert K. Bell
这个问题可以改进一下,加上“Web App”作为问题的一部分,例如“Business Catalyst液体排序Web App项目”。目前并不清楚您要进行排序的数据是什么。您是想按电子邮件地址字母顺序对Web App数据进行排序吗?因为“按字母顺序排列”在您的问题中也没有提到... - Luke
2个回答

0
Daut的回答不好。在for循环中的任何解决方案都只会对从模块中获取的项目数量进行排序,其最大数量为500。 如果您正在使用module_data,则只需使用其实际排序即可!
{module_data resource="customers" version="v3" order="firstName" fields="firstName,email1" collection="myData"}
module_data支持使用WHERE进行过滤和ORDER进行结果排序。

被问及如何排序。给出了module_data和一个循环过滤器。那样不行。我解释了为什么,并通过模块中的用户订购选项提供了实际解决方案。所以这就是答案。 - thenexus00

0

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

{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>

逗号不是拼写错误 : )

在将字符串拆分为数组后,您可以根据需要进行任何操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接