ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-注册装配把手助手

2019-10-29 11:37:49  阅读:300  来源: 互联网

标签:assemble node-js handlebars-js javascript grunt-assemble


我正在尝试做一些我看过的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有