6
我試圖讓板模板引擎與express.js一起工作。我最初的嘗試是這樣的:Express.js自定義模板引擎(板)
app.register('.html', {
compile: function (str, options) {
var template = new plate.Template(str);
return function(locals) {
return template.render(locals, function(err, data) {
return data;
});
}
}
});
我看到的問題是,template.render不返回任何內容(不確定),但數據傳遞給回調。我不確定如何使它在這種情況下工作,因爲Express期望編譯函數返回一個函數,該函數在調用時直接返回呈現的模板。
我在想也許我可以使用promise來解決這個問題,但由於express代碼並不期望返回promise,所以沒有成功。我不太在承諾速度,所以我可能只是做錯了:
app.register('.html', {
compile: function (str, options) {
var promise = new Promise();
var template = new plate.Template(str);
return function(locals) {
template.render(locals, function(err, data) {
promise.resolve(data);
});
return promise;
}
}
});
這是一個自定義實現的例子,可以工作。所不同的是強調模板模板()函數直接返回字符串呈現像這樣:
app.register('.html', {
compile: function (str, options) {
var template = _.template(str);
return function (locals) {
return template(locals);
};
}
});
我真的很想用板的模板,因爲{%塊%}標籤是這樣真棒。任何幫助表示讚賞。
相關文件:
板的創建者及時地添加了一個補丁到項目中,以使它與快速兼容,我問了這個。 [email protected]+有變化,你可以看到實現細節[這裏](https://github.com/chrisdickinson/plate/wiki/Getting-Started---In-Node) – joshontheweb
你應該添加一個答案這個問題,然後接受它,如果這是真的! – tjarratt