0

我正在使用 Expressjs 开发这个 Web 应用程序,我觉得需要 Microsoft 的 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”文件中调用它,而不需要脚本,或者将它作为参数发送,那就太好了。

4

1 回答 1

0

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

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

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


helpers.first();

如果this不是您想要的,您可以随时在 Javascript 中轻松更改它。

于 2012-07-13T11:07:30.220 回答