2010-10-17 23 views
29

¿Cómo obtengo una referencia al elemento actual en la iteración?Iteración de matrices con bigote

{{#my_array}} 
    <p>{{__what_goes_here?__}}</p> 
{{/my_array}} 

Espero que esté pasando por alto lo obvio.

Respuesta

50

Según the spec's changelog, se añadió el iterador implícita (.) en v1.1.0 de la especificación. Todas las bibliotecas de Moustache que implementen al menos v1.1.0 deberían ser compatibles.

{{#array_of_strings}}<li>{{.}}</li>{{/array_of_strings}} 
+0

Nota: Las matrices deben tener claves implícitas para que esto funcione. Al utilizar este método cuando su matriz tenga índices, se generará una instancia de la palabra 'Array'. – Popnoodles

9

Me alejé un poco de mi código y recordé que Ruby es pato. Desde mi arsenal era de cuerdas, todo lo que necesitaba era:

{{#my_array}} 
    <p>{{to_s}}</p> 
{{/my_array}} 

voy a dejar esta pregunta aquí con la esperanza de salvar a otra persona algún tiempo.

22

partir del código fuente https://github.com/bobthecow/mustache.php

/** 
* The {{%IMPLICIT-ITERATOR}} pragma allows access to non-associative array data in an 
* iterable section: 
* 
*  $context = array('items' => array('foo', 'bar', 'baz')); 
* 
* With this template: 
* 
*  {{%IMPLICIT-ITERATOR}}{{#items}}{{.}}{{/items}} 
* 
* Would render as `foobarbaz`. 
* 
* {{%IMPLICIT-ITERATOR}} accepts an optional 'iterator' argument which allows implicit 
* iterator tags other than {{.}} ... 
* 
*  {{%IMPLICIT-ITERATOR iterator=i}}{{#items}}{{i}}{{/items}} 
*/