Javascript 如何将变量作为全局变量传递给jade模板
我希望能够将一个全局对象传递给jade模板,以后我将使用该对象进行任何操作 让我们说:Javascript 如何将变量作为全局变量传递给jade模板,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,我希望能够将一个全局对象传递给jade模板,以后我将使用该对象进行任何操作 让我们说: app.get("/", function(req, res){ var options = { chGlobal : {// this is the object i want to be a global "property1" : 1, "property2" : 2, "property3" : 3,
app.get("/", function(req, res){
var options = {
chGlobal : {// this is the object i want to be a global
"property1" : 1,
"property2" : 2,
"property3" : 3,
}
};
jade.renderFile(__dirname +'/tpl/main.jade', options, function (err, html) {
console.log(err, html);
if (err)
{
throw err
}
else
{
res.send(html);
}
});
});
我希望能够在加载的其他脚本中使用“chGlobal”。就好像chGlobal是在全局范围内定义的一样
感谢您通过express使用jade作为查看引擎,如下所示:
app.set('views', __dirname); // this will be where your views are located.
app.set('view engine', 'jade');
app.get("/", registerGlobals, function(req, res) {
您可以使用res.locals.variable指定局部变量
(示例)
然后在Jade中,您可以访问选项变量
您可以编写一个中间件来自动附加全局变量,如下所示:
app.set('views', __dirname); // this will be where your views are located.
app.set('view engine', 'jade');
app.get("/", registerGlobals, function(req, res) {
那么中间件的功能将是:
function registerGlobals(req, res, next) {
res.locals.options = {
chGlobal : {// this is the object i want to be a global
"property1" : 1,
"property2" : 2,
"property3" : 3,
}
};
next();
}
有关如何使用jade的更多教程,请参见此处:如果您通过express将jade用作视图引擎,如下所示:
app.set('views', __dirname); // this will be where your views are located.
app.set('view engine', 'jade');
app.get("/", registerGlobals, function(req, res) {
您可以使用res.locals.variable指定局部变量
(示例)
然后在Jade中,您可以访问选项变量
您可以编写一个中间件来自动附加全局变量,如下所示:
app.set('views', __dirname); // this will be where your views are located.
app.set('view engine', 'jade');
app.get("/", registerGlobals, function(req, res) {
那么中间件的功能将是:
function registerGlobals(req, res, next) {
res.locals.options = {
chGlobal : {// this is the object i want to be a global
"property1" : 1,
"property2" : 2,
"property3" : 3,
}
};
next();
}
更多关于如何使用jade的教程,请点击此处:是否有需要手动编译jade的原因?手动编译jade是什么意思?我只是从jade开始,这是我知道如何使用它的唯一方法。你想手动编译jade有什么原因吗?手动编译jade是什么意思?我只是从jade开始,这是我知道如何使用它的唯一方法。是的,我确实这样使用它,但我不需要局部变量,我需要全局变量。假设我有一个模板-在该模板中,我加载了另一个JS头,其中包含该页面的所有功能,我希望能够使用从该文件中的服务器“加载”的变量。我有点困惑,如果您在jade中使用include语句(指另一个模板),您可以访问变量。全局变量,您希望它们可以在整个jade模板中访问,对吗?对于css,不要使用include-use
script(src=“/js/utilFunctions.js”type=“text/javascript”)
或link(href=“/css/style.css”rel=“stylesheet”type=“text/css”)
,我希望能够使用utilFunction.js中的变量如果要在客户端脚本上公开变量,必须手动进行(显式声明var options='#{options}'))或者创建一个名为/js/utilFunctions.js的端点,这是一个显式的express端点,用于呈现js文件。是的,没有解析,效果很好,我将它放在了正确的位置:-)谢谢你坚持我。是的,我确实这样使用它,但我不需要局部变量,我需要全局变量。假设我有一个模板-在该模板中,我加载了另一个JS头,其中包含该页面的所有功能,我希望能够使用从该文件中的服务器“加载”的变量。我有点困惑,如果您在jade中使用include语句(指另一个模板),您可以访问变量。全局变量,您希望它们可以在整个jade模板中访问,对吗?对于css,不要使用include-usescript(src=“/js/utilFunctions.js”type=“text/javascript”)
或link(href=“/css/style.css”rel=“stylesheet”type=“text/css”)
,我希望能够使用utilFunction.js中的变量如果要在客户端脚本上公开变量,必须手动进行(显式声明var options='#{options}'))或者创建一个名为/js/utilFunctions.js的端点,这是一个显式的express端点,用于呈现js文件。是的,没有解析,效果很好。我将它放在了正确的位置:-)感谢您坚持我的观点。