1

我想知道是否有一种方法可以简化此车把模板以不使用助手。

数据:

{
    games:[game: {teamID:1}]
    teams:{1:{name:'Team Name'}}
}

模板(请注意,它位于{{#each games}}:

{{#teamFetch ../this teamID 'name'}}{{/teamFetch}}

帮手:

Handlebars.registerHelper('teamFetch', function(season, teamid, property){
    return season.teams[teamid][property];
});

我是车把的新手,但这是我可以弄清楚如何根据比赛中的 id 在赛季中访问特定球队并获得该球队财产的唯一方法。有没有不需要辅助函数的更简单的方法?

4

1 回答 1

4

没有办法绕过不使用助手。这是因为 Handlebars 不允许您在其段文字符号中传递变量来指定变量路径。在有关 Expressions 的 Handlebars 文档中

要引用不是有效标识符的属性,您可以使用分段文字表示法:{{#eacharticles.[10].comments}} {{/each}}

所以......理想情况下,我们希望能够做这样的事情:

{{#each games}}
        {{../teams.[teamID].name}}
{{/each}}

但截至目前,还没有办法将 into 的值传递teamID进去 ../teams.[ ].name

它只能这样做:

{{#each games}}
        {{../teams.[0].name}}
{{/each}}

它只能解释值,例如。0,并且无法解析变量,例如。teamID

于 2013-04-02T05:01:10.957 回答