2013-03-13 4 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 ffer из этого простого?

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

Это будет выполнено в браузере.

+1

Я не уверен, о пыли, но JavaScript массивы имеют встроенный '.sort' метод, который позволяет выбрать, как вы хотите, чтобы отсортировать массив. Вы можете использовать это для сортировки массивов, а затем передать их отсортированным в dust.js, если это приемлемое решение для вас. –

+0

Да, я понимаю это, но я не хочу влиять на данные при рендеринге с помощью шаблона dust.js. – Jim

ответ

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

Her e - это рабочая область: http://jsfiddle.net/jamsyoung/k3SNN/

+0

любой пример кода, отличный от этого url .... – Reshma

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 гонки Winners пример

Смежные вопросы