2013-03-13 71 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比賽優勝者例如

相關問題