2015-08-04 2 views
1

Относительно новинка handlebars.js, но не шаблоны. Я использую два цикла для вывода разметки в определенном порядке. И collections.intro, и collections.elements создаются по https://github.com/segmentio/metalsmith-collections.Использование строки как части цикла #each в handlebars.js

Javascript

var order = ['intro', 'elements']; 

collections.intro = [ 
{ title: 'One' }, 
{ title: 'Two' } 
]; 

collections.elements = [ 
{ title: 'One' }, 
{ title: 'Two' } 
]; 

Рули

{{#each order}} 

    {{this}} /* intro, elements */ 

    {{#each ../collections.[this]}} 
    {{this.title}} 
    {{/each}} 

{{/each}} 

Есть в любом случае использовать this из цикла order для доступа к правильной collections. Оба collections[intro] и collections[elements] работают при жестком кодировании.

ответ

1

Успели решить эту проблему с помощью пользовательского помощника:

Javascript

Handlebars.registerHelper('collection', function (slug, options) { 
    return options.data.root.collections[slug]; 
}); 

Рули

{{#each order}} 

    {{#each (collection this)}} 
    {{this.title}} 
    {{/each}} 

{{/each}} 
Смежные вопросы