我正在使用Expressjs处理这个Web应用程序,我觉得需要微软的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
当助手被调用时,它退出的视图范围内,将会有不能访问那里的其他帮手。
现在,我希望这个助手“文本框”调用“CharCounter”。第二个助手应该是由其他几个助手调用的,所以,如果我可以从助手的“.js”文件中调用它,而不需要脚本,或者将它作为参数发送,那将是非常棒的。
你能举一个你想要做什么的例子吗?另外请注意,助手和dynamicHelpers在3.x中被删除。 – Pickels 2012-07-12 11:56:09
我在Pickels的问题底部添加了一个例子。当你说版本3.x时,你是指Express? o.O – 2012-07-13 08:42:28
我的意思是Express.js 3.x.在新版本中你只有res.locals。因此,如果你想在3.x中使用助手,你可以为全局帮助程序或'res.locals.myHelper = function(){}'特定的帮助程序执行'app.locals.myHelper = function(){}'。 – Pickels 2012-07-13 11:10:10