使用dust.js对功能进行排序

时间:2013-03-13 02:39:54

标签: javascript dust.js

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}

这将在浏览器中执行。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

添加Dust Context Helper!

"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比赛获胜者示例