嘿傢伙!在手柄中的助手內呈現模板
因爲這似乎沒有答案:Passing variables through handlebars partial但是,我目前正在研究一個小的解決方法來完成這項工作。所以,這個想法是註冊一個輔助函數,它可以呈現一個具有可能值的特定模板。一段代碼使它更好理解。
這是我怎麼會調用我的幫助:
<div>
{{myHelper}}
</div>
該輔助用這個小小的代碼註冊:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
我把這個snippiet成一個圈登記在不同的助手一旦。這意味着給出'名字'和'文件'。
好了,現在我能夠做這樣的事:
// 'values' could be something like this:
var values = { headline: 'HEADLINE' }
<div>
{{myHelper values}}
</div>
在一個幫助我現在就可以測試是否被賦予了特定的值:
// myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
這一點的解決方法對我的作品,但有一個問題。如上所述註冊助手,返回一個簡單的HTML轉義字符串。因此,調用助手不會輸出呈現的HTML片段。它將HTML輸出爲一個轉義字符串。
有沒有人有一個想法,我可以如何讓我的代碼片段返回HTML爲HTML?
/帕斯卡爾
是啊!這對我行得通!非常感謝! – PascalPrecht 2012-07-23 13:46:31
如果有效,請相應地標記答案 – brafales 2012-11-11 14:38:24
以防萬一有人遇到此問題......必須通過'hbs.handlebars'訪問'SafeString'方法,而不是直接通過'hbs'訪問......這是針對節點的。 js用戶:) – Maroshii 2013-06-19 09:42:14