express使用pug模板引擎时,render发送的参数如何在jQuery中使用?

发布于 2022-09-05 10:01:02 字数 688 浏览 39 评论 0

在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

生活了然无味 2022-09-12 10:01:02
script.
    let dataObj = "#{dataObject}";

这里就会把 dataObject 的值传进来作为变量赋给 dataObj ,这是很早之前 express 的语法,不知道现在这种写法还能不能工作。

梦与时光遇 2022-09-12 10:01:02

res.render传递的参数并不是js变量,而是传递给模板的。
你可以先把参数写入到html的某个元素的data或是是其他属性中,然后js去获取;
或是直接在script中把这个参数赋值给一个js变量。

娇妻 2022-09-12 10:01:02

没接触pug模板,yy着写的请见谅。

script.
    -let dataObj = dataObject;
    $(document).ready(function(){
        console.log(dataObject);
    })

猜测类似-这个写法应该会全部判定为js解析,跟script.无关。感觉是行的,试试看?

要么就只能放到某个标签内部当做属性,完了在jq代码里取一下。

不正之处请指出,谢谢。


突然感觉不太对。不行就不行了哈……


sorry编辑了n次。

script.
    let dataObj = -dataObject;
    $(document).ready(function(){
        console.log(dataObject);
    })

这样写对不对,思路就是把dataObject解析到script标签里。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文