从帮助者中调用助手

时间:2012-07-12 10:04:14

标签: node.js helper express

我正在使用Expressjs在这个网络应用上工作,我觉得需要微软的Razor视图引擎提供的功能。

Razor允许用户从其他帮助者中调用助手。    在Expressjs,帮手'当从视图中调用它们时,范围不会扩展到帮助程序。

这有解决方法吗?我不想将帮助程序作为参数传递给视图,或者必须要求帮助程序的文件。

提前致谢

示例:

我有

app.helpers({ TextBoxHelper: require('./TextBox.js') });
app.helpers({ CharCounter  : require('./CharCounter.js'  ) });

在我的服务器中。当我渲染视图时,我使用jshtml视图引擎并调用帮助器,我只需要执行以下操作:

@TextBoxHelper()    //I can do this because all helpers are present in this scope

当调用帮助程序时,它会退出视图范围,并且不会访问那里的其他帮助程序。

现在,我想要这个助手" TextBox"致电" CharCounter"。这个第二个助手应该被其他几个帮手调用,所以,如果我可以从帮助者那里调用它,那将是很好的。 "的.js"文件,无需要求脚本,或将其作为参数发送。

1 个答案:

答案 0 :(得分:0)

我只是将所有助手捆绑到一个对象中。这样您就可以使用this.someHelper()

var helpers = {
  first: function () {
    console.log('first');
    helpers.second();
  },

  second: function () {
    console.log('second');
  }
};


helpers.first();

如果this不符合您的要求,您可以随时在Javascript中轻松更改。