У меня есть массив объектов json, которые выводятся с использованием шаблона Handlebars; В настоящее время я использую {{#each object}} ... {{/ each}}. Теперь мне нужно отсортировать объекты по одному из свойств объекта, что опять же не проблема с помощью помощника handlebars & coffeescript, однако у меня есть проблема в моем шаблоне, так как я не могу решить, как выполнять итерацию по отсортированному массиву, используя каждый ,Handlebars Block Helper: каждый с сортировкой
Мои исследования до сих пор указывает на то, что я, вероятно, нужно написать специальный Рули помощника, который, по сути, быть:
{{#each_with_sort array}}
Мой существующий помощник сортировки, как этот
Handlebars.registerHelper sort_me =>
myArray.sort (a,b)->
return if +a.sort_index >= +b.sort_index then 1 else -1
но, Я изо всех сил стараюсь использовать отсортированный массив в шаблоне - например, это не так просто, как
{{#each sort_me(myArray)}}
Данные поступают от стороннего API, поэтому мне приходится выполнять сортировку в handlebars/coffeescript.
Это отличный ответ! – marty
Как бы выглядел код для помощника, который перебирает свойства объекта отсортированным образом? –
@JoachimBreitner Объекты JavaScript не имеют определенного порядка, поэтому вам нужно будет преобразовать объект в '[[key, value], ...]' array-of-arrays и отсортировать его; или вы можете извлечь ключи в массив, отсортировать массив ключей и выполнить итерацию по отсортированным клавишам. –