Tengo una plantilla de manubrios que se representa con un objeto json. En este json estoy enviando una matriz. Me gusta esto:
var json = {
"array":["abc","def","ghi","jkl"]
}
Ahora en mi plantilla quiero encontrar la longitud de esta matriz. Algo como:
{{#each item}}
{{ array.length }}
{{/each}}
No se pudo encontrar en la documentación de Handlebars.
javascript
templates
handlebars.js
Abhidev
fuente
fuente
En este caso, debe hacer referencia a la variable principal de cada desde dentro de cada bloque:
Creo que su variable que se llama "matriz" probablemente también está combinando el problema. Asumamos un JSON diferente solo para aclarar:
var json = { "fruit":["apple","orange","banana"] };
Entonces haciendo esto:
<ul> {{#each fruit}} <li>{{this}} {{@index}} {{../fruit.length}}</li> {{/each}} </ul>
Rendiría:
<ul> <li>apple 0 3</li> <li>orange 1 3</li> <li>banana 2 3</li> </ul>
fuente
apple 0 3
orange 1 3
banana 2 3
Puede definir un ayudante simple para manejarlo:
Handlebars.registerHelper('get_length', function (obj) { return obj.length; });
Y luego úselo en su plantilla, por ejemplo:
fuente
Si está probando una lista vacía para mostrar contenido ... En Ember.js, que usa manubrios, puede tener otro para #each.
{{#each blah as |blah|}} {{else}} // If array is empty {{/each}}
fuente