Handlebars:使用子属性访问Parent的JSON属性

时间:2013-04-01 18:19:12

标签: json handlebars.js

我想知道是否有办法简化此把手模板以不使用助手。

数据:

{
    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找出如何访问本赛季特定球队的唯一方法,并获得该球队的财产。是否有一种不需要辅助函数的简单方法?

1 个答案:

答案 0 :(得分:4)

没有办法绕过不使用助手。这是因为Handlebars不允许您在 segment-literal notation 中传递变量来指定变量路径。在Handlebars documentation regarding Expressions

  

要引用不是有效标识符的属性,您可以使用segment-literal表示法:{{#each articles。[10] .comments}} {{/ each}}

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

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

但截至目前,无法将teamID的值传入../teams.[ ].name

它只能做到这一点:

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

它只能解释数值,例如。 0,无法解决变量,例如。 teamID