mbe*_*ker 78 node.js express pug
我目前正在一个新项目上使用Jade.我想渲染一个页面并检查某个变量是否可用.
app.js:
app.get('/register', function(req, res){
res.render('register', {
locals: {
title: 'Register',
text: 'Register as a user.',
}
});
});
Run Code Online (Sandbox Code Playgroud)
register.jade:
- if (username)
p= username
- else
p No Username!
Run Code Online (Sandbox Code Playgroud)
我总是得到以下错误:
username is not defined
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
Che*_*tan 105
这应该工作:
- if (typeof(username) !== 'undefined'){
//-do something
-}
Run Code Online (Sandbox Code Playgroud)
BMi*_*ner 88
如果你不介意测试假值而不是未定义的值,那么比@ Chetan的方法更简单:
if locals.username
p= username
else
p No Username!
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为有点具有讽刺意味的locals是模板的根对象.
avo*_*d3d 10
if 'username' in this
p=username
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为res.locals是模板中的根对象.
如果你事先知道你想要一个特定的变量,但并不总是使用,那么我就开始在helpers对象中添加一个"默认"值.
app.helpers({ username: false });
Run Code Online (Sandbox Code Playgroud)
这样,您仍然可以在if (username) {没有灾难性故障的情况下完成任务.:)
| 归档时间: |
|
| 查看次数: |
65253 次 |
| 最近记录: |