我正在使用Sails JS并希望在我的资产中访问全局(sails.config.myGlobals),目前在js文件中。
我希望我有类似的注入ejs文件的方式。但事实并非如此。
有什么想法吗?我必须为此做一个Grunt任务吗?
答案 0 :(得分:3)
在config
文件夹中创建一个配置文件,例如MyConfig.js
(名称并不重要)。用你想要的东西填充该配置。
module.exports.myconfig = {
configA: 'this is config A'
}
在控制器中使用该配置,例如。
showconfig: function(req, res){
res.view('viewname', {
config: sails.config.myconfig
});
}
现在,在您调用的EJS文件中,viewName.ejs
位于views
文件夹中,您可以像<% config.configA %>
一样使用它,并打印this is config A
。此外,如果您希望前端js(在assets文件夹中)能够读取该值,只需将其打印在script
标记中,就像这样。
<script>
global.configA = '<%= config.configA %>';
</script>
或者如果您使用前端框架库,它可以置于某些value
,service
或factory
下,而不会使全局变量变脏,因此其他JS可以读取那个价值。
答案 1 :(得分:2)
我不认为Sails可以做到这一点。
但是,您可以做的是在ejs视图文件中设置变量以在js资产文件中访问其值。
// someView.ejs
<script>
myGlobals = '<%= config.myGlobals %>';
</script>