gpt4 book ai didi

javascript - 如何在 Node 中注册和使用 Handlebars 助手?

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:22 24 4
gpt4 key购买 nike

我在 Node 中使用 Handlebars,效果很好:

require('handlebars');
var template = require('./templates/test-template.handlebars');
var markup = template({ 'some': 'data' });
console.log(markup);

这很好用。但是,我需要在我的模板中注册并使用自定义助手。所以,现在我的代码如下所示:

var Handlebars = require('handlebars');

Handlebars.registerHelper('ifEqual', function(attribute, value) {
if (attribute == value) {
return options.fn(this);
}
else {
return options.inverse(this);
}
});

var template = require('./templates/test-template.handlebars');
var markup = template({ 'some': 'data' });
console.log(markup);

但是现在当我运行我的脚本时,我得到了

Error: Missing helper: 'ifEqual'

那么:我如何在 Node 中定义和使用自定义助手?

最佳答案

我想通了。我需要这样做:

var Handlebars = require('handlebars/runtime')['default'];

真正酷的是,它甚至可以在浏览器中使用 Browserify。

但是,我发现更好的方法(可能也是“正确”的方法)是通过(shell 命令)预编译 Handlebars 模板:

handlebars ./templates/ -c handlebars -f templates.js

然后我这样做:

var Handlebars = require('handlebars');
require('./templates');
require('./helpers/logic');

module.exports.something = function() {
...
template = Handlebars.templates['template_name_here'];
...
};

关于javascript - 如何在 Node 中注册和使用 Handlebars 助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com