簡體   English   中英

在Node JS服務器端加載預編譯的Handlebar模板

[英]Loading pre-compiled Handlebar templates in Node JS server side

是否有使用handlebars.js加載預編譯模板的協議NPM模塊或者必須提供自己的“getTemplate”函數來加載特定模板?

以下失敗,無法讀取未定義的屬性'hello'。

var compiledTemplate =  handlebars.templates['hello'];

“hello.handlebars”是模板文件的名稱。

而這個工作正常。

var template = fs.readFileSync(“./hello.html", "utf8");
var uncompiledTemplate = handlebars.compile(template); 
var data = {message : "Hello world!"};
var finalPageHTML = uncompiledTemplate(data);

所以我需要什么才能執行

compiledTemplate(data) 

並將我的最終HTML模擬到未編譯的版本?

謝謝。

我發現了一個適合我的解決方案。 我的模板目錄中有一個名為list.handlebars的模板:

<ul>
    <li>{{title}}</li>
</ul>

然后,我運行此命令:

handlebars -c handlebars templates -f dist/templates.js && echo module.exports = templates; >> dist/templates.js

'-c把手'標志前置需要(“把手”); 到輸出。

然后,在我的服務器代碼中,我使用:

var template = require('./dist/templates');
console.log(template['list']({title: 'winner'}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM