Como dice el título de la pregunta, ¿hay alguna forma de bigote / manillar de recorrer las propiedades de un objeto ?
Entonces con
var o = {
bob : 'For sure',
roger: 'Unknown',
donkey: 'What an ass'
}
¿Puedo hacer algo en el motor de plantillas que sería equivalente a
for(var prop in o)
{
// with say, prop a variable in the template and value the property value
}
?
{{#each this}}
. Su elección de términos también es confusa (¿qué hace que un objeto sea de "nivel superior" y otro no? ¿Qué son exactamente las claves "predefinidas", etc.), por lo que es posible que desee volver a visitar estos conceptos.En realidad, es bastante fácil de implementar como ayudante:
Luego usándolo así:
fuente
EDITAR: Los manillares ahora tienen una forma integrada de lograr esto; ver la respuesta seleccionada arriba. Cuando se trabaja con bigote simple, lo siguiente sigue siendo válido.
El bigote puede iterar sobre los elementos de una matriz. Por lo tanto, sugeriría crear un objeto de datos separado formateado de forma que Bigote pueda trabajar con:
Ahora, su plantilla de bigote sería algo así como:
Consulte la sección "Listas no vacías" aquí: https://github.com/janl/mustache.js
fuente
Esta es la respuesta de @ Ben actualizada para usar con Ember ... tenga en cuenta que debe usarla
Ember.get
porque el contexto se pasa como una Cadena.Modelo:
fuente
La respuesta de @ Amit es buena porque funcionará tanto en bigote como en manillar.
En cuanto a las soluciones exclusivas para manillares, he visto algunas y me gusta el
each_with_key
bloqueador en https://gist.github.com/1371586 el mejor.'key'
, o'property'
, etc.fuente
Gracias por la solución de Ben, mi caso de uso para mostrar solo campos particulares en orden
con objeto
Código:
Objeto de origen:
Modelo:
Salida:
fuente
Esta es una función auxiliar para bigoteJS, sin formatear previamente los datos y en su lugar obtenerlos durante el render.
Modelo:
Salidas:
(el orden puede ser aleatorio, es un mapa) Esto podría ser útil si conoce el elemento del mapa que desea. Solo ten cuidado con los valores falsos.
fuente
Estaba usando una versión anterior
1.0.beta.6
del manillar, creo que en algún lugar durante 1.1 - 1.3 se agregó esta funcionalidad, por lo que actualizar a 1.3.0 resolvió el problema, aquí está el uso:Uso:
fuente