express使用pug模板引擎时,render发送的参数如何在jQuery中使用?
在express中使用pug作为模板引擎,当render一个视图时:
router.get('/edit-item/:id', function(req, res, next){
let id = req.params.id;
serviceItem.find({_id:id}, function(err, data){
console.log(data);
res.render('service/editItem',{dataObject:data[0], id:id});
});
});
向视图传递一个dataObject参数,在pug模板中可以这样使用:
div.form-group
label 项目名称
- let name = dataObject.name;
input.form-control(type="text" name="name" value=name)
但是,如果要在pug模板中的jQuery中使用这个dataObject,该咋办?
script.
$(document).ready(function(){
console.log(dataObject); //这个控制台会提示undefined
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里就会把 dataObject 的值传进来作为变量赋给 dataObj ,这是很早之前 express 的语法,不知道现在这种写法还能不能工作。
res.render传递的参数并不是js变量,而是传递给模板的。
你可以先把参数写入到html的某个元素的data或是是其他属性中,然后js去获取;
或是直接在script中把这个参数赋值给一个js变量。
没接触pug模板,yy着写的请见谅。
猜测类似
-
这个写法应该会全部判定为js解析,跟script.
无关。感觉是行的,试试看?要么就只能放到某个标签内部当做属性,完了在jq代码里取一下。
不正之处请指出,谢谢。
突然感觉不太对。不行就不行了哈……
sorry编辑了n次。
这样写对不对,思路就是把
dataObject
解析到script
标签里。