如何在 Sails 中访问资产中的全局变量?
How in Sails to access globals in assets?
我正在使用 Sails JS 并想访问我的资产中的全局变量 (sails.config.myGlobals),目前在 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 文件中,例如 viewName.ejs
在 views
文件夹中,您可以像 <% config.configA %>
一样使用它,而 this is config A
将是打印。此外,如果您希望前端 js(在资产文件夹中)能够读取该值,只需将其打印在 script
标记中,就像这样。
<script>
global.configA = '<%= config.configA %>';
</script>
或者如果你使用前端框架库,可以放在一些value
,service
,或factory
下,不弄脏全局变量,其他JS可以读取该值。
我认为 Sails 无法做到这一点。
但是,您可以在 ejs 视图文件中设置变量以访问其在 js 资产文件中的值。
// someView.ejs
<script>
myGlobals = '<%= config.myGlobals %>';
</script>
我正在使用 Sails JS 并想访问我的资产中的全局变量 (sails.config.myGlobals),目前在 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 文件中,例如 viewName.ejs
在 views
文件夹中,您可以像 <% config.configA %>
一样使用它,而 this is config A
将是打印。此外,如果您希望前端 js(在资产文件夹中)能够读取该值,只需将其打印在 script
标记中,就像这样。
<script>
global.configA = '<%= config.configA %>';
</script>
或者如果你使用前端框架库,可以放在一些value
,service
,或factory
下,不弄脏全局变量,其他JS可以读取该值。
我认为 Sails 无法做到这一点。
但是,您可以在 ejs 视图文件中设置变量以访问其在 js 资产文件中的值。
// someView.ejs
<script>
myGlobals = '<%= config.myGlobals %>';
</script>