Gran @maxbeatty respuesta.
Solo quería agregar otro ejemplo si alguien tiene el mismo problema y no puede entender la solución anterior.
En primer lugar tengo una matriz unidimensional, que quería dividir en cada 4 elementos:
// this is the one dimensional data we have from let's say a mysql query
var array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', ...];
// think of it as [[], [], [], [], [], ...]
// but instead we'll be adding a dummy object with a dummyKey
// since we need a key to iterate on
var jagged = [];
var size = 4, // this is the size of each block
total = array.length/block; // total count of all blocks
// slice the initial one dimensional array into blocks of 4 elements each
for (var i=0; i < total; i++) {
jagged.push({dummyKey: array.slice(i*size, (i+1)*size)});
}
Ahora si pasamos jagged
en nuestro punto de vista, podemos iterar de esa manera:
<ul>
{{#jagged}}
<li>
<ul>
{{#dummyKey}}
<li>{{.}}</li>
{{/dummyKey}}
</ul>
</li>
{{/jagged}}
</ul>
Si tenemos nuestro conjunto inicial lleno de objetos:
var array = [{key1: 'a',
key2: 'b'},
{key1: 'c',
key2: 'd'},
{key1: 'e',
key2: 'f'},
...
];
Entonces en nuestro témpo placa tendremos:
<ul>
{{#jagged}}
<li>
<ul>
{{#dummyKey}}
<li>{{key1}} - {{key2}}</li>
{{/dummyKey}}
</ul>
</li>
{{/jagged}}
</ul>
puede también añadir una muestra de los datos del objeto que está alimentando al bigote/manillar? – gonchuki