我如何对小部件中的片段进行排序?

How do i sort the pieces in my widget?

我有以下问题,

我创建了一个小部件,它的主要功能是向我展示我所有的新闻报道。 news-piece 有一个名为 "priority" 的字段,可以是 0 到 100 之间的整数。

我想做的主要是按"priority"排序。

下面的HTML-代码是我的news-widgets/views/widget.html

{% for piece in data.widget._pieces %}
<div class="commercial_widget_wrapper">
    <a href="{{ piece.detaillink }}">
        <div class="commercial_widget_inner row">
            <div class="commercial_widget_thumbnail">
                {% set image = apos.images.first(piece.thumbnail) %}
                {% if image %}
                <img class="bild" src="{{ apos.attachments.url(image, { size: 'full' }) }}"/>
                {% endif %}
                {% if image == null %}
                <div class="bild">
                {{apos.area(piece, 'thumbnail', {edit:false, size: 'full'})}}
                </div>
                {% endif %}
            </div>
            <div class="commercial_widget_label">
                <b>{{piece.title}}</b><br>
                {{piece.text}}
            </div>
        </div>
    </a>
    <div style="clear:both;"></div>

</div>
{% endfor %}

我在 show.html 页面的

添加了小部件
{{apos.singleton(data.page, 'news', 'news', {})}}

我的问题是,如何以及在哪里可以对我的结果进行排序?我试图在 apostrophe-cursors 的帮助下找到一些东西,但文档缺少一个很好的例子。

这个 SO 问题说明了在每个小部件的数据进入您的模板之前,您可以在哪里与它们进行交互

通过连接到小部件的 load 方法,您将可以访问所有相关的部分。然后,您可以使用 lodash 的 sortBy 之类的东西根据每个项目中的 属性 对数组重新排序。