如何在Sails中访问资产中的全局变量?

时间:2015-07-04 14:07:13

标签: sails.js assets globals

我正在使用Sails JS并希望在我的资产中访问全局(sails.config.myGlobals),目前在js文件中。

我希望我有类似的注入ejs文件的方式。但事实并非如此。

有什么想法吗?我必须为此做一个Grunt任务吗?

2 个答案:

答案 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>

或者如果您使用前端框架库,它可以置于某些valueservicefactory下,而不会使全局变量变脏,因此其他JS可以读取那个价值。

答案 1 :(得分:2)

我不认为Sails可以做到这一点。

但是,您可以做的是在ejs视图文件中设置变量以在js资产文件中访问其值。

// someView.ejs
<script>
    myGlobals = '<%= config.myGlobals %>';
</script>