2011-05-24 9 views
7

DadajQuery plantilla se unen a una matriz prima

<div id="place_holder" /> 

<script id="template" type="text/x-jquery-tmpl"> 
WHAT DO I PUT HERE 
</script> 

var array_of_ints = [1,2,3] 

$("#template") 
     .tmpl(array_of_ints ) 
     .appendTo("#place_holder"); 

Qué puedo poner dentro de la plantilla de conseguir?

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
</ul> 

Respuesta

4
<ul id="place_holder"> 
</ul> 

<script id="template" type="text/x-jquery-tmpl"> 
    <li>${}</li>  
</script> 

var array_of_ints = [1,2,3] 

$("#template") 
    .tmpl(array_of_ints) 
    .appendTo("#place_holder"); 
+0

No parece funcionar ... ver http://jsfiddle.net/MBkds/ –

+0

Ok, modifiqué un poco el código y ahora funciona. – Dave

-1

Quiere ver la etiqueta de la plantilla {{each}}.

En este caso, no creo que jQuery.tmpl sea realmente la mejor manera de hacerlo. Sería mucho más fácil, en mi opinión, solo usar un lazo estándar for.

var array_of_ints = [1,2,3]; 

//creates the ul 
var ul = $('<ul></ul>'); 

//creates the LI's 
for(var i = 0; i < array_of_ints.length; i++){ 
    ul.append('<li>' + array_of_ints[i] + '</li>'); 
} 

//adds to the placeholder 
$('#placeholder').append(ul); 

http://jsfiddle.net/LeKYu/

+0

La pregunta era si se puede hacer utilizando jQuery.tmpl –

+0

@Michael Wolfenden: Entiendo eso, por eso publiqué el enlace a la etiqueta de plantilla '{{each}}'. Le recomendaría cambiar su ejemplo, porque usar jQuery.tmpl para esto es completamente inútil. Un ejemplo más realista sería más útil para usted y para cualquier lector futuro. –

+0

@Michael Wolfdenden: También estoy bastante seguro de que no hay forma de que tenga acceso al objeto raíz. Lo que está haciendo es para cada objeto/valor en la matriz, está llamando a la plantilla, en lugar de llamar a la plantilla con la matriz. –

8
<div id="place_holder" /> 

<script id="template" type="text/x-jquery-tmpl"> 
    {{= $data}} 
</script> 

var array_of_ints = [1,2,3] 

$("#template") 
    .tmpl(array_of_ints ) 
    .appendTo("#place_holder"); 

{{=}} $ de datos funciona en todas partes (trabajo $ {} costumbre en las cadenas en la plantilla)

+0

¿Qué quiere decir con $ {} no funcionará en cadenas en la plantilla? ¿Puedes dar un ejemplo donde {{= $ data}} funciona pero $ {} no? –

+0

configurando atributos de etiquetas como name y src – nidx

1

$ {} no funcionó para mí con un conjunto de cadenas ['A String', 'Another String', 'Yet Another String'], pero {{= $ data}} sí. ¡Gracias!

Cuestiones relacionadas