在Handlebars中动态每个迭代器是否部分?

时间:2016-09-01 22:45:23

标签: javascript html handlebars.js

说我有以下JSON:

category: {
    a_items: [],
    b_items: []
}

我有一个Handlebars部分:

{{#each items}}
    {{stuff}}
{{/each}}

我想做的是告诉部分哪个数组要迭代:

{{> showItems items=a_items}}

然而,部分将尝试迭代category.items 哪个不存在。

这样就可以在不必创建助手的情况下实现这一目标吗?

P.S。 This answer建议不要,但我不知道我的助手会做什么。我不想将部分的整个{{stuff}}部分移动到帮助器中。

1 个答案:

答案 0 :(得分:0)

这是我找到的解决方案。创建一个帮助者:

Handlebars.registerHelper('returnKeyValue', function(obj, key, options) {
    return options.fn(obj[key]);
});

将上下文传递给帮助者:

{{#returnKeyValue this items}}
    {{> partialThatIteratesOverItems}}
{{/returnKeyValue}}

我用两种不同的语境调用它:

{{> partial items='a_items'}}
{{> partial items='b_items'}}