2015-04-30 19 views
0

我在我的node.js應用一個車把/小鬍子佈局文件看起來像這樣:小鬍子{{{局部}}} VS {{>局部}}

{{> header}} 
{{> navbar}} 
{{{body}}} 
{{> footer-user}} 
{{> footer}} 

由於所有五個線是包括,這兩種類型之間有什麼區別?我可以用{{{header}}}將{{{body}}}替換爲{{> body}}或{{> header}}嗎?它們似乎都不能逃避包含的html。最佳做法是什麼?

回答

2

語法{{> name}}爲泛音,即包括另一個模板:

把手允許通過的partials模板重用。部分是 正常Handlebars模板,可以由其他 模板直接調用。

{{{name}}}用於包含數據而不轉義它。如果您希望數據被轉義,請使用{{name}}

把手HTML轉義由{{表達式}}返回的值。如果您的 不想讓Handlebars轉義價值,請使用「三重藏匿」{{{。

所以他們是不同的東西。

{{{body}}}指您的應用程序提供的當前上下文中的body屬性(或者它可以引用輔助函數,但這裏不是這種情況)。

如果您在代碼中有{{>body}},這意味着您有一個名爲body的模板,您希望處理欄加載。

需要注意的是,如果你使用正確的把手,都諧音需要通過調用Handlebars.registerPartial(如果你的項目使用express-handlebars,它確實這一切給你,讓你不會找到這樣的代碼)進行註冊。

把手的文檔可在handlebarsjs.com找到。