2012-11-30 48 views
125

我有handlebars.js模板,就像這樣的:訪問一個Handlebars.js的範圍之外的可變每個循環

{{externalValue}} 

<select name="test"> 
    {{#each myCollection}} 
     <option value="{{id}}">{{title}} {{externalValue}}</option> 
    {{/each}} 
</select> 

而且這是所生成的輸出:

myExternalValue 

<select name="test"> 
     <option value="1">First element </option> 
     <option value="2">Second element </option> 
     <option value="3">Third element </option> 
</select> 

作爲預計,我可以訪問myCollection的每個元素的idtitle字段來生成我的選擇。在選擇之外,我的externalValue變量已正確打印(「myExternalValue」)。

不幸的是,在選項的文本中,externalValue值永遠不會打印出來。

我的問題是:我如何從loop中訪問每個handlebars.js範圍之外的變量?

一如既往,在此先感謝。

回答

312

嘗試

<option value="{{id}}">{{title}} {{../externalValue}}</option> 

../路徑段引用父模板範圍,應該是你想要的。

+5

乾杯人,這完美的作品。 :) – lucke84

+5

如果將來的讀者仍然像我一樣遇到問題,請查看[此答案]的評論(http://stackoverflow.com/a/12297980/149998)。看到這個答案後,我花了一段時間纔看到那一個。您可能需要重複使用'../',具體取決於您遠離您的值的範圍。 – bcmcfc

+5

我是瘋了還是這種類型的有價值的信息無處可查找的把手文檔? – Jesse