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