从客户端到服务器传递Handlebars Helper功能参数

时间:2018-01-16 15:20:44

标签: javascript node.js express handlebars.js express-handlebars

在我的app.js我需要Express-Handlebars模块并激活我的viewHelper模块

const express = require('express');
const exphbs = require('express-handlebars');

const handlebars = require('./server/viewHelper')(exphbs);

此视图助手注册所有辅助函数

module.exports = function(exphbs){

  return exphbs.create({
      defaultLayout: 'index',
      extname: 'hbs',
      helpers: {
         test: require('./viewHelpers/test')(num),
         foo: require('./viewHelpers/foo'),
         bar: require('./viewHelpers/bar')
      }
  });

};

我的测试函数执行此代码

module.exports = function (num) {
    return num;
}

所以写作时

{{test 3}}

在我的手柄文件中,如何将此号码传递给服务器?因为变量num显然是未定义的。

1 个答案:

答案 0 :(得分:0)

没有必要将变量num传递给您的帮助程序,通过这样做,将使用undefined参数调用测试函数(内部测试助手),并返回undefined ,那么你将undefined作为test属性的值,它不正确,因为test属性应该是一个函数:

helpers: {
    test: require('./viewHelpers/test')
}

相当于:

helpers: {
    test: function (num) {
        return num;
    }
}

{{test 3}}相当于test(3);