2

XSLT 允许您在使用模板呈现节点时对它们进行排序。Linked In 的dust.js 版本有这个吗?

如果是这样,如果我有这个 JSON 视图:

{
    people: [ 
        { name: "Fred", sort_order: 3 },
        { name: "Harry", sort_order: 2 },
        { name: "Linda", sort_order: 4 },
        { name: "Mary", sort_order: 6 },
        { name: "Bob", sort_order: 5 },
        { name: "Joey", sort_order: 1 }
    ]
}

我想要这个输出:


乔伊
·哈里
·弗雷德·
琳达
·鲍勃·
玛丽

模板与这个简单的模板有何不同?

{#people}
    <br/>{name}
{/people}

这将在浏览器中执行。

4

2 回答 2

4

要在 Dust 中执行此操作,您需要编写一个助手来进行排序。关于这种数据操作是否应该在灰尘模板中完成,或者在它上面传递数据的层中完成,可能会有一个健康的争论。

您可以在此处找到有关编写除尘助手的详细信息:

以下是排序助手的示例:

dust.helpers.customSort = function (chunk, context, bodies, params) {
    params.items.sort(function(a, b) {
        return ((a.sort_order < b.sort_order) ? -1 : ((a.sort_order > b.sort_order) ? 1 : 0));
    });

    return chunk;
};

这是它的工作原理:http: //jsfiddle.net/jamsyoung/k3SNN/

于 2013-04-05T22:33:27.603 回答
0

只需添加灰尘上下文助手!

"helperName": function(chunk, context, bodies, params) {
     var val = context.get("nameOfProperty");
     nameOfProperty.sort(function(a, b) {
     return a.nameOfProperty[param] - b.nameOfProperty[param];
     });
   return racers;
}

详细信息在这里 Dust.js比赛获胜者示例

于 2017-08-18T11:28:54.310 回答