2013-04-01 42 views
1

我想知道是否有一種方法來簡化這個句柄模板不使用幫手。把手:使用子屬性訪問家長的JSON屬性

數據:

{ 
    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

沒有辦法避開不使用幫手。這是因爲把手不允許您在其段文字表示法中傳遞變量來指定可變路徑。在Handlebars documentation regarding Expressions

要引用屬性是不是有效的標識符,可以使用片段的文字符號:{{#each文章[10]。點評}} {{/每}}

所以......理想情況下,我們希望能夠做這樣的事情:

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

但截至目前,沒有辦法在teamID的值傳遞到../teams.[ ].name

只有能夠這樣做的:

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

它只能解釋值,例如。 0,並且無法解析變量,例如。 teamID