Mustache.js: Matrices convertidas en cadenas

Creado en 9 dic. 2011  ·  5Comentarios  ·  Fuente: janl/mustache.js

Tengo esta matriz:
"Opciones": [
"X",
"y",
"z"
]

Cuando llamo "{{Optionen}}" esto se devuelve: "x,y,z"

Pero necesito obtener ["x", "y", "z"]

¿Es esto un error o me estoy perdiendo algo?

Comentario más útil

Sí, esto es por diseño. Cualquier clave que coincida con el objeto de datos se convertirá en una cadena si no es "falsa". En el caso de las matrices, JavaScript las convierte en cadenas con el formato x,y,z (pruébelo usted mismo: abra firebug y escriba ["x","y","z"].toString() y el resultado debería ser x,y,z .

Si desea algo diferente, debe escribir la plantilla manualmente. Algo como:

[{{#Optionen}}"{{.}}",{{/Optionen}}]

Espero que ayude.

Todos 5 comentarios

Sí, esto es por diseño. Cualquier clave que coincida con el objeto de datos se convertirá en una cadena si no es "falsa". En el caso de las matrices, JavaScript las convierte en cadenas con el formato x,y,z (pruébelo usted mismo: abra firebug y escriba ["x","y","z"].toString() y el resultado debería ser x,y,z .

Si desea algo diferente, debe escribir la plantilla manualmente. Algo como:

[{{#Optionen}}"{{.}}",{{/Optionen}}]

Espero que ayude.

esto se acerca bastante. Usando [{{#Optionen}}"{{.}}", {{/Optionen}}] obtengo ["x", "y", "z", ]
Desafortunadamente, la última coma será un problema, cuando este valor se guarde nuevamente (después de, por ejemplo, haber agregado "a" al principio). ¿Hay alguna manera de evitar esa última coma?
Oh, después de guardar, ["a", "x", "y", "z", ] obtengo esto: "[\"a,x,y,z\", ]"
guardar a,x,y,z da la matriz correcta ["a", "x", "y", "z"]
Parece que será mejor que me ciña a a,x,y,z.
Espero, nunca necesito guardar un valor con coma...
Bueno, supongo que no hay una solución fácil a menos que no uses bigote.
Corrígeme que me equivoco. Cerrando el tema.
¡Muchas gracias por ayudar!

problema cerrado

Lo siento, no estoy seguro de lo que estás tratando de hacer. No estoy seguro de lo que significa "guardar", pero para eliminar la última coma en Moustache, creo que la única forma de hacerlo es introducir una variable indicadora mediante la iteración previa de la lista en JavaScript, lo que rápidamente se convierte en más problemas de lo que vale. Creo que la funcionalidad de los ayudantes que @janl está desarrollando podría hacer que esto sea más fácil de resolver en Moustache, pero no estoy seguro ya que no estoy muy familiarizado con él.

Alternativamente, mire JSON.stringify y JSON.parse (integrados en el navegador) que pueden ayudar a deserializar matrices en el formato que espera.

Encontré la solución: .split(", ") ¡lo hizo!
Entonces cargo el valor con bigote en un campo. Luego uso .split(", ) cuando guardo los datos en el campo con saveDoc.

2011/12/12 Sahab Yazdani <
[email protected]

Lo siento, no estoy seguro de lo que estás tratando de hacer. No estoy seguro de lo que significa "ahorrar",
pero eliminar la ultima coma en Moustache, creo que la unica forma de hacerlo
es introducir una variable indicadora mediante la iteración previa de la lista en JavaScript,
que rápidamente se convierte en más problemas que su valor. Creo que los ayudantes
la funcionalidad que @janl está construyendo podría hacer que esto sea más fácil de resolver en
Bigote en sí, pero no estoy seguro ya que no estoy muy familiarizado con él.

Alternativamente, consulte JSON.stringify y JSON.parse (integrados en el
navegador) que puede ayudar a deserializar matrices en el formato que desee.
están esperando


Responda a este correo electrónico directamente o véalo en GitHub:
https://github.com/janl/mustache.js/issues/146#issuecomment-3100397

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

MatthijsZw picture MatthijsZw  ·  18Comentarios

rlightner picture rlightner  ·  7Comentarios

ForbesLindesay picture ForbesLindesay  ·  14Comentarios

amper5and picture amper5and  ·  5Comentarios

Immortalin picture Immortalin  ·  12Comentarios