Express+jade:局部变量在视图中不可用
Posted
技术标签:
【中文标题】Express+jade:局部变量在视图中不可用【英文标题】:Express+jade: local variable not available in view 【发布时间】:2012-04-29 06:35:48 【问题描述】:我遇到了一个非常基本的问题,但我似乎找不到答案。我正在使用node.js
、express
,我只是想将一个局部变量传递到这样的视图中:
app.get('/', function(req, res)
res.render("index", locals:
title: "Blog",
);
);
我的索引视图同样简单:
h1= title
但由于某种原因,我不断收到此错误,就好像从未传递局部变量一样:
500 ReferenceError: /home/spartan/Node_Projects/test/views/index.jade:1 > 1| h1= title 2| title is not defined
> 1| h1= title
2| title is not defined
我不知道我做错了什么!以下是我正在使用的版本:
快递:3.0.0alpha1 node.JS: 0.6.14 翡翠:0.24.0请有人帮忙,这样我就可以继续学习 node + express!
【问题讨论】:
【参考方案1】:您应该传递不带locals
的变量。这可能是 express 3.0.0 中的新功能
res.render("index", title: "Blog");
【讨论】:
非常感谢,就是这样!我只是在学习一个旧教程,不知道出了什么问题..【参考方案2】:h1 = title 尝试在本地评估它,您发送的标题和那个不同。要了解差异,请参阅:
- var title = 'my title' // - allows writing code
h1 = title
你应该使用的是:
h1 #title
【讨论】:
谢谢你告诉我,我现在明白这个区别了。我很确定就是这样,但不幸的是,当我将视图更改为h1 #title
时,它给了我完全相同的错误消息......有什么想法吗?【参考方案3】:
Here is a response 几个小时前我提出了一个类似的问题(+ 处理布局)。它显示了如何在渲染时传递数据。 (Express 3.0.0 兼容)
【讨论】:
谢谢,您的回复也有我想要的答案。以上是关于Express+jade:局部变量在视图中不可用的主要内容,如果未能解决你的问题,请参考以下文章
如何正确渲染部分视图,并使用 Express/Jade 在 AJAX 中加载 JavaScript 文件?