2011-07-26 16 views
1

做出一些「全球價值」在我的模板可用,調用TMPL當我指定的「選項」參數:是否有更簡潔的方式將附加數據傳播到嵌套模板?

var globals = { aProperty: "foo" }; 

$("#tcontent").tmpl(data, 
     { globals: globals }) // <-- options 
.appendTo("#content"); 

我可以的globals這樣即可訪問屬性:

${$item.globals.aProperty} 

然後,每當我從模板中調用另一個模板時,我需要執行以下操作,以確保globals再次可用於嵌套模板中:

{{tmpl(nestedValue, {globals: $item.globals}) "#tnestedtemplate"}} 

這是一種繁瑣。是否有一些其他更清潔的機制,使我的模板中可以訪問這些全局值?

回答

1

如果你命名空間你的JavaScript,你可以添加一個TemplateGlobals或類似的命名空間:

Globals = {}; 
Globals.TemplateProperties = {}; 
Globals.TemplateProperties.TestProperty = "Test"; 

現在有沒有必要繞過globals對象,當你調用.tmpl。您可以直接訪問屬性。這個明顯的缺點是,現在這些屬性可用於所有的JS代碼。

${Globals.TemplateProperties.TestProperty} 

例子:http://jsfiddle.net/andrewwhitaker/CqVxS/

+0

謝謝 - 我想我試過了,但也許我沒有創建一個正確的全局變量... – mackenir

相關問題