在handlebars.js中使用字符串作为#each循环的一部分

时间:2015-08-04 12:32:40

标签: handlebars.js

handlebars.js相对较新,但不是模板。我使用两个循环按特定顺序输出标记。 collections.introcollections.elements都由https://github.com/segmentio/metalsmith-collections创建。

的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 个答案:

答案 0 :(得分:1)

管理以使用自定义帮助程序解决此问题:

<强>的Javascript

.imgLink

<强>车把

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