Guidon Bloc Helper : chaque avec tri
J'ai un tableau d'objets json qui je l'ai sortie à l'aide d'un Guidon modèle; je suis actuellement en train de faire à l'aide de {{#pour chaque objet}}...{{/chaque}}. J'ai maintenant besoin de trier les objets par l'une des propriétés de l'objet, qui est encore une fois pas de problème à l'aide d'un guidon helper & coffeescript, cependant, j'ai un problème dans mon template dans que je ne peux pas travailler sur la façon de parcourir le tableau trié à l'aide de chacun.
Mes recherches à ce jour indique que j'ai probablement besoin d'écrire une coutume Guidon helper qui, en effet, être:
{{#each_with_sort array}}
Mon aide de tri, c'est comme cela
Handlebars.registerHelper sort_me =>
myArray.sort (a,b)->
return if +a.sort_index >= +b.sort_index then 1 else -1
mais, j'ai du mal à être en mesure d'utiliser le tableau trié dans le modèle - par exemple, il n'est pas aussi simple que
{{#each sort_me(myArray)}}
Les données provenant d'un tiers de l'API, donc je dois effectuer un tri dans l'guidon/coffeescript.
OriginalL'auteur Tykus | 2013-07-15
Vous devez vous connecter pour publier un commentaire.
La meilleure chose à faire serait de trier les données avant qu'il arrive à Guidon, alors vous pouvez utiliser
{{#each ...}}
comme d'habitude et pas de aides sont nécessaires. Ce type d'approche est assez commun avec le Guidon, le modèle est souvent divisé en deux pièces: un (Java|Café)Script de la pièce pour les données de déformation/réarrangement et le modèle approprié.Que d'un côté, vous aurez envie d'ajuster votre comparateur de fonction pour se comporter de la propriété. À partir de la beaux-manuel:
Donc, vous voulez retourner
0
sia.sort_index
etb.sort_index
sont les mêmes, quelque chose de plus comme ceci:Si vous devez faire le tri à l'intérieur du modèle puis vous auriez besoin d'ajouter des
each_with_sort
de l'aide pour faire les deux le tri et l'itération, quelque chose comme ceci:et votre modèle sera comme ceci:
Démo: http://jsfiddle.net/ambiguous/zusq2tt4/
Comment le code pour une aide ressembler à ce qui itère sur les propriétés d'un objet dans un classement?
JavaScript les objets ont pas d'ordre précis de sorte que vous aurez besoin de convertir l'objet d'un
[[key,value],...]
tableau de tableaux et de sorte que, ou bien vous pouvez extraire les clés dans un tableau, trier le tableau de clés, et d'itérer sur le tri des clés.Merci. J'ai fait le dernier et l'intègre dans mon propre
#each
variante.Jetez un oeil à ma mise à jour de réponse. Je pense que le
@index
des trucs a ajouté Guidon après que j'ai posté cette réponse, trois ans est une longue période dans le logiciel, après tout 🙂OriginalL'auteur mu is too short