2012-08-06 23 views
6

Una pregunta en el bucle {{for}} en jsRender.jsRender loop a List <string>

La demostración muestra que puede recorrer una colección de objetos complejos y mostrar sus propiedades:

{{for languages}} 
    <div> 
     <em>{{>name}}</em> 
    </div> 
{{/for}} 

Pero lo que si mi languages es sólo una List<string>? No se mostrará {{>name}}. ¿Cómo podemos hacer referencia a los valores de cadena individuales?

Gracias.

Respuesta

11

Debe poder usar #data para acceder a los valores de cadena individuales dentro del bucle.

+0

Sólo por curiosidad, ¿se trata de un método documentado? –

+0

@mattlohkamp Hay una mención de esto [aquí] (https://www.jsviews.com/#paths) ("_' # data' es la abreviatura de' # view.data'_ ") y [aquí] (https : //www.jsviews.com/#[email protected]) ("_a view tiene una propiedad de datos, que es el contexto de datos actual utilizado para representar esa view_") –

+0

necesita un ejemplo en el contexto –

18
{{#data}} 

No me funcionó.

Algo parece haber sido cambiado, esto es lo que hizo por mí:

{{>#data}} 
+1

Creo que el ">" fue implícito. – Syska

+1

{{: #data}} si tiene alguna etiqueta html en su cadena ... – r2b2s

+0

@ r2b2s - en realidad es exactamente lo contrario. "Se debe usar la etiqueta {{> ...}} en lugar de {{: ...}} cuando los datos que se están procesando no sean del todo confiables, para protegerse contra los ataques de inyección de HTML". - https://www.jsviews.com/#htmltag –

0

Además, si usted quiere hacer algunas comparaciones, se puede usar un código como:

{{if #data == 'xxx' || #data == 'yyy'}} 
... 
{{/if}} 

en la secuencia de comandos.

2

que puedes usar:

{{>#data}} o {{>}} - (codifica HTML)

{{:#data}} o {{:}} - (no HTML)

Por ejemplo:

Digamos que su languages objeto tiene este aspecto:

var languages = ['en', 'sp', 'zh'];

{{for languages}} 
    <div> 
     <em>{{>}}</em> 
    </div> 
{{/for}} 

resultará en:

<div> 
    <em>en</em> 
</div> 
<div> 
    <em>sp</em> 
</div> 
<div> 
    <em>zh</em> 
</div> 

Documentación

#data

Difference between : and >