javascript-注册装配把手助手
作者:互联网
我正在尝试做一些我看过的Assemble文档和其他存储库中相对简单的事情,但是由于某些原因,我在注册我的Handlebars帮助器时遇到了问题.助手在助手中> helper-classgrid.js
module.exports.register = function (Handlebars, options, params) {
Handlebars.register('classgrid', function (index, options) {
gridclass: function (index, options) {
if (index === 0 || index % 4 === 0) {
return options.fn(this);
}
return options.inverse(this);
};
};
我的gruntfile其中config.helpers = helpers:
assemble: {
options: {
layoutdir: '<%= config.guts %>/templates/layouts/',
assetsDir: '<%= grunt.config.get("assets_dir") %>',
environmentIsProduction: '<%= grunt.config.get("environmentIsProduction") %>',
environmentIsDev: '<%= grunt.config.get("environmentIsDev") %>',
data: ['<%= config.content %>/**/*.json', '<%= grunt.config.get("environmentData") %>'],
helpers: ['<%= config.helpers %>/helper-*.js']
},
}
模板代码:
{{#classgrid @index}}
// do something here
{{/classgrid}}
现在,当我在Handlerbars模板中实现助手并运行包含组装任务的grunt任务时,我得到了错误
Warning: Missing helper: 'classgrid' Use --force to continue.
我不确定自己做错了什么,或者不确定是否必须为我的助手创建一个单独的NPM软件包,这似乎在汇编文档中提出了建议.我看了这两个似乎在做我想做的回购
https://github.com/buildingblocks/bb-prototype-website/blob/master/Gruntfile.js
https://github.com/ghost-town/layouts-example/blob/master/Gruntfile.js#L33
解决方法:
不知道这是否只是复制/粘贴问题,但是上面的代码看起来不正确…这是应该起作用的方法:
module.exports.register = function (Handlebars, opts, params) {
Handlebars.registerHelper('classgrid', function (index, options) {
if (index === 0 || index % 4 === 0) {
return options.fn(this);
}
return options.inverse(this);
});
};
我将尝试创建一个测试项目,以确保它可以正常工作.
编辑:创建测试项目后,我看到您使用的是Handlebars.register而不是Handlebars.registerHelper.我已经将代码更新为可以正常工作的解决方案.希望这可以帮助.
标签:assemble,node-js,handlebars-js,javascript,grunt-assemble 来源: https://codeday.me/bug/20191029/1959761.html