我想知道是否有办法简化这个车把模板,不使用助手。
数据:
{
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找出如何在赛季中访问特定球队并获得该球队的属性的方法。有没有一种不需要助手功能的更简单的方法?
没有办法避免不使用助手。这是因为Handlebar不允许您在其段文字表示法中传递变量以指定变量路径。在关于表达式的Handlebar留档中:
要引用不是有效标识符的属性,您可以使用段文字表示法:{{#each文章。[10]。评论}}{{/each}}
因此…理想情况下,我们希望能够做这样的事情:
{{#each games}}
{{../teams.[teamID].name}}
{{/each}}
但是到目前为止,还没有办法将teamID
的值传入…/team.[]. name
。
它只能做到这一点:
{{#each games}}
{{../teams.[0].name}}
{{/each}}
它只能解释值,例如。0
,无法解析变量,例如。teamID