【问题标题】:where I create or modify global variables of the view (ejs)我在哪里创建或修改视图的全局变量(ejs)
【发布时间】:2014-04-25 18:10:44
【问题描述】:

我需要修改变量“<%= title %>”,但我不知道他们在哪里创建变量或我可以在哪里更改它。

我想知道可以在视图中找到其他全局变量,例如变量 我没有在视图中发送,但由于某种原因已经存在。在“快递”中,它触动了我做以下事情:

res.render('session/new', {title: "Log in", session: req.session});

所以我想知道他们在哪里创建“会话”变量,因为我不喜欢去那里不知道一些事情 XD

非常感谢您的帮助。

【问题讨论】:

  • 您使用的是什么版本的sails.js?如果我将<%= title %> 放在我的 .ejs 文件中,我会得到未定义。
  • 我使用的是 0.9 版。在layout.ejs中使用了变量“title”,在页面的标题中
  • 啊,好吧。这就解释了,我使用的是 0.10 版。可能在最新版本中删除了该全局变量。

标签: node.js express sails.js ejs


【解决方案1】:

我将尝试回答您关于 Sails.js 中的局部/全局变量的一些问题。

局部变量

Sails.js 构建在 ExpressJS 之上,并使用许多相同的技术将数据发送到视图。例如,将局部变量发送到上下文中的视图:

在您的控制器中:

newSession: function(req, res, next) {
    res.view('session/new', {
        title: "Log in", 
        session: req.session
    });
});

全局变量

Sails.js 已经有一些全局变量。 title 可能是其中之一。例如sails 是一个全局变量。您可以将自己的自定义变量附加到该变量。为此:

  • config 文件夹中创建一个新文件。
  • 随意命名,并使用 module.exports 约定。

在您的config/myGlobals.js 文件中:

module.exports.myGlobalVariables = {
    globalOne: "This is a string",
    globalTwo: function(){ return "myGlobal"; }
}

现在您可以使用以下方法在所有控制器/视图中访问这些变量:

sails.config.myGlobalVariables.globalOne; //returns: This is a string
sails.config.myGlobalVariables.globalTwo; //returns: myGlobal

【讨论】:

  • 这很有帮助,@aludvigsen。但是,创建 config/myGlobals.js 文件后,如何在 views/layout.ejs 中使用 sails.config.myGlobalVariables.globalOne
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
相关资源
最近更新 更多