Comme l'indique le titre de la question, existe-t-il un moyen moustache / guidon de parcourir les propriétés d' un objet ?
Donc avec
var o = {
bob : 'For sure',
roger: 'Unknown',
donkey: 'What an ass'
}
Puis-je ensuite faire quelque chose dans le moteur de modèle qui serait équivalent à
for(var prop in o)
{
// with say, prop a variable in the template and value the property value
}
?
{{#each this}}
. Votre choix de termes est également déroutant (qu'est-ce qui fait qu'un objet est "de niveau supérieur" et pas un autre? Quelles sont exactement les clés "prédéfinies", etc.), donc vous voudrez peut-être revoir ces concepts.Il est en fait assez facile à implémenter comme aide:
Ensuite, utilisez-le comme ceci:
la source
EDIT: le guidon a maintenant une manière intégrée d'accomplir cela; voir la réponse sélectionnée ci-dessus. Lorsque vous travaillez avec de la moustache ordinaire, ce qui suit s'applique toujours.
La moustache peut parcourir les éléments d'un tableau. Je suggère donc de créer un objet de données séparé formaté de manière à ce que Moustache puisse fonctionner avec:
Maintenant, votre modèle de moustache serait quelque chose comme:
Consultez la section "Listes non vides" ici: https://github.com/janl/mustache.js
la source
Ceci est la réponse de @ Ben mise à jour pour une utilisation avec Ember ... notez que vous devez l'utiliser
Ember.get
car le contexte est transmis sous forme de chaîne.Modèle:
la source
@ La réponse d'Amit est bonne car elle fonctionnera à la fois sur la moustache et sur le guidon.
En ce qui concerne les solutions réservées aux guidons, j'en ai vu quelques-unes et j'aime mieux l'
each_with_key
assistant de blocage sur https://gist.github.com/1371586 .'key'
, ou'property'
, etc.la source
Merci pour la solution de Ben, mon cas d'utilisation pour afficher uniquement des champs particuliers afin
avec objet
Code:
Objet source:
Modèle:
Production:
la source
Il s'agit d'une fonction d'aide pour moustacheJS, sans pré-formatage des données et au lieu de cela lors du rendu.
Modèle:
Les sorties:
(l'ordre peut être aléatoire - c'est une carte) Cela peut être utile si vous connaissez l'élément de carte que vous souhaitez. Faites juste attention aux valeurs de falsification.
la source
J'utilisais une ancienne version
1.0.beta.6
du guidon, je pense que quelque part entre 1.1 et 1.3, cette fonctionnalité a été ajoutée, donc la mise à jour vers 1.3.0 a résolu le problème, voici l'utilisation:Usage:
la source