2013-03-13 87 views
2

XSLT允许您在使用模板呈现节点时对节点进行排序。 Linked In的dust.js版本有这个吗?使用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 } 
    ] 
} 

,我想这样的输出:


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

如何将模板di从这个简单的吗?

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

这将在浏览器中执行。

+1

我不知道粉尘,但JavaScript数组有一个内置的'.sort'方法,可以让你选择你想如何排序的数组。您可以使用它对数组进行排序,然后将它们传递给dust.js,前提是这对您而言是可接受的解决方案。 – 2013-03-13 02:42:15

+0

是的,我意识到这一点,但我不想在使用dust.js模板呈现数据时影响数据。 – Jim 2013-03-13 04:27:50

回答

4

要做到这一点在灰尘,你需要编写一个帮手来做排序。如果这个数据处理应该在灰尘模板中完成,或者在其上面的数据层中完成,那么可能会有一个健康的争论。

您可以在这里找到有关编写防尘助手的详细信息:

这里是一个什么样的排序助手可能看起来像一个例子:

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; 
}; 

她e是一个jsfiddle它的工作:http://jsfiddle.net/jamsyoung/k3SNN/

+0

除此URL以外的任何示例代码.... – Reshma 2013-08-26 06:53:25

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比赛优胜者例如

相关问题