我正在使用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"文件,无需要求脚本,或将其作为参数发送。
答案 0 :(得分:0)
我只是将所有助手捆绑到一个对象中。这样您就可以使用this.someHelper()
。
var helpers = {
first: function () {
console.log('first');
helpers.second();
},
second: function () {
console.log('second');
}
};
helpers.first();
如果this
不符合您的要求,您可以随时在Javascript中轻松更改。