使用Jade显示输入框内的数据

11

我对Jade还比较陌生,想要将一些输出的数据显示为文本输入框的value值。就像这样:

input(type="text", name="date", value="THISRIGHTHURR")

但是只需要将值设置为viewpost.date。我尝试了多种方法,但似乎都无法生效:

input(type="text", name="date", value=viewpost.date) // doesn't work
input(type="text", name="date", value=.=viewpost.date) // doesn't work
input(type="text", name="date", value=".=viewpost.date") // doesn't work

当然,我可以通过类似以下的方式在之外使其工作:

each post, i in viewpost
  h1.=post.date

我应该如何在input中循环?这是使用Node和Express输出viewpost变量的JS代码。

// render show post view
exports.viewpost = function(db) {
    return function(req, res) {
        var id = req.params.id;

        collection.find({ "_id": new BSON.ObjectID(id) }, function (err, data) {
            res.render("viewpost", {
                "viewpost" : data
            });
        });
    };
};
3个回答

22

15
您可以尝试将变量括在#{}中以输出它: input(type="text", name="date", value="#{viewpost.date}")

不要忘记它是一个字符串! - Adam Fowler
9
这对于 Pug 已经过时了,请查看下面 asym 的答案。 - SoManyGoblins

0

我意识到这已经是老新闻了,但我发现这两种方法都不起作用,最终像我一样困惑的人可能会这样做:

input(type="text", placeholder=data.string)

然后在脚本中:

$(document).on('focus', 'input', function(){
    var text = $(this).attr('placeholder');
    $(this).val(text);
})

谢谢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接