【问题标题】:passing Handlebars Helper function parameters from client to server将 Handlebars Helper 函数参数从客户端传递到服务器
【发布时间】:2018-01-16 15:20:43
【问题描述】:

在我的 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 显然是未定义的。

【问题讨论】:

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


    【解决方案1】:

    不需要将变量num 传递给你的助手,这样测试函数(在测试助手内部)将使用undefined 参数调用,并返回undefined,然后你会得到@ 987654324@ 作为test 属性的值,这是不正确的,因为test 属性应该是一个函数:

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

    相当于:

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

    {{test 3}} 等价于test(3);

    【讨论】:

      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多