2013-11-28 2 views
0

В app.js я передаю клиенту 2 массива того же размера.Возможно ли получить доступ к нескольким массивам в цикле #each в файле handlebars?

Можно ли сделать что-то подобное?

{{#each arrayOne}} 
<Li>this </Li> 
<Li> {{@index : arrayTwo}} </Li> 
{{/each}} 
+1

Возможно, вам придется подготовить свои структуры данных для более тщательного сопоставления с вашим прецедентом, поскольку Handlebars не должен быть языком сценариев. – tadman

ответ

1

Вы должны избегать сложной логики в своих шаблонах. Вместо этого я бы рекомендовал, чтобы контроллер выполнял слияние для вас.

Таким образом, вы распутываете представление, поскольку оно более подробно описывает, что вы собираетесь отображать, и ваш контроллер четко заявляет о намерении отображать разные данные в совокупности.

например

model.arr = arrayOne.map(function (item, i) { 
    return { 
    i1: arrayOne[i], 
    i2: arrayTwo[i] 
    }; 
}); 

Тогда ваш взгляд становится значительно упрощена

{{#each arr}} 
<Li>{{arr.i1.thing}}</Li> 
<Li>{{arr.i2.thingie}}</Li> 
{{/each}} 

Очевидно, что вы должны улучшить эту дополнительную лишь возвращая соответствующие свойства в вашем map обратного вызова.

+0

Я посмотрел на карту и выглядел точно так, как мне нужно. Спасибо за вашу помощь. – Jrom

Смежные вопросы