提问者:小点点

Handlebar:使用子属性访问父级的JSON属性


我想知道是否有办法简化这个车把模板,不使用助手。

数据:

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

模板(注意是在{{#each game}}中:

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

帮手:

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

我是车把新手,但这是我唯一能根据游戏中的id找出如何在赛季中访问特定球队并获得该球队的属性的方法。有没有一种不需要助手功能的更简单的方法?


共1个答案

匿名用户

没有办法避免不使用助手。这是因为Handlebar不允许您在其段文字表示法中传递变量以指定变量路径。在关于表达式的Handlebar留档中:

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

因此…理想情况下,我们希望能够做这样的事情:

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

但是到目前为止,还没有办法将teamID的值传入…/team.[]. name

它只能做到这一点:

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

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