目标:我不想为把手复制模板,部分和帮助器。我想在客户端和服务器上重用它们。
问题:在客户端注册帮助程序时,它不起作用。
Stack:Node.js(带快递),handlebars.js,browserify
正在使用的NPM模块:browserify-handlebars
,express-handlebars
在我的客户端方面,我有以下文件:
var Handlebars = require('handlebars');
Handlebars.registerHelper('json', function(obj) {
return JSON.stringify(obj);
});
var aTemplateFunction = require('../../templates/blah.handlebars');
var html = aTemplateFunction({
someObject: {
'key': 'value'
}
});
我有浏览器运行它来编译模板。
../../templates/blah.handlebars
是:
{{ json someObject }}
它会很好地编译模板,但它不会正确应用帮助程序。我得到的错误是:
Uncaught Error: Missing helper: 'json'
我在这里做错了什么?
其他问题:我发现这个例子(http://codyrushing.com/using-handlebars-helpers-on-both-client-and-server/)关于在客户端和服务器之间共享助手,但对我来说这似乎更像是一个黑客攻击。
在客户端和服务器之间共享帮助程序的正确方法是什么?