0
我正在使用Jaggery.js
編寫一個web應用程序,並使用caramel
作爲MVC框架。焦糖使用把手作爲渲染引擎,以便我們可以使用任何內置的助手提供的手柄,如{{#each}}, {{#if}}
等焦糖如何註冊手柄幫手?
但我怎麼寫我的自定義助手和註冊焦糖,所以焦糖可以使用它呈現在模板?
有沒有關於這方面的任何樣本?
在此先感謝!
我正在使用Jaggery.js
編寫一個web應用程序,並使用caramel
作爲MVC框架。焦糖使用把手作爲渲染引擎,以便我們可以使用任何內置的助手提供的手柄,如{{#each}}, {{#if}}
等焦糖如何註冊手柄幫手?
但我怎麼寫我的自定義助手和註冊焦糖,所以焦糖可以使用它呈現在模板?
有沒有關於這方面的任何樣本?
在此先感謝!
我發現了一種方法來註冊焦糖幫手的手柄,它可以工作,但不知道是否是正常和正確的解決方案。
我在做什麼是註冊在焦糖theme.js助手(jaggeryapps \ MYAPP \主題\ mytheme的\ theme.js),代碼如下圖所示:
var engine = caramel.engine('handlebars', (function() {
return {
partials: function (Handlebars) {
var theme = caramel.theme();
var partials = function (file) {
(function register(prefix, file) {
var i, length, name, files;
if (file.isDirectory()) {
files = file.listFiles();
length = files.length;
for (i = 0; i < length; i++) {
file = files[i];
register(prefix ? prefix + '.' + file.getName() : file.getName(), file);
}
} else {
name = file.getName();
if (name.substring(name.length - 4) !== '.hbs') {
return;
}
file.open('r');
Handlebars.registerPartial(prefix.substring(0, prefix.length - 4), file.readAll());
file.close();
}
})('', file);
};
partials(new File(theme.resolve('partials')));
Handlebars.registerHelper('my-for', function(n, block) {
var ret = '';
for(var i = 0; i < n; ++i) {
ret += block.fn(i);
}
return ret;
});
},
};
}()));
我有Caramell某一首歌只是通過閱讀你的問題困在我的頭上。今天將是漫長的一天... –