【问题标题】:Display data inside input value using Jade使用 Jade 显示输入值内的数据
【发布时间】:2014-02-13 13:41:21
【问题描述】:

我对 Jade 还很陌生,我想将一些输出数据显示为文本 inputvalue 值。像这样:

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

我当然可以通过做类似的事情让它在 input 之外工作

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

我也应该以某种方式在input 中循环吗?这是输出我的 viewpost 变量的 JS(使用 Node 和 Express)。

// 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
            });
        });
    };
};

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    Pug 0.1.0 (Jade 2.x) 移除了对属性插值的支持,所以现在可以使用:

    input(type="text", name="date", value=viewpost.date)
    

    https://github.com/pugjs/pug/issues/2305

    【讨论】:

      【解决方案2】:

      您可以尝试将变量包含在#{} 中以输出它:

      input(type="text", name="date", value="#{viewpost.date}")

      【讨论】:

      • 别忘了它在一个字符串中!
      • 这对于 Pug 来说已经过时了,请在下面查看 asym 的答案。
      【解决方案3】:

      我意识到这是旧消息,但我发现这些都不起作用,并最终这样做,对于任何像我一样难过的人:

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

      然后在脚本中:

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

      谢谢

      【讨论】:

        猜你喜欢
        • 2017-10-18
        • 2016-01-23
        • 1970-01-01
        • 2019-03-13
        • 2015-09-24
        • 1970-01-01
        • 2013-05-17
        • 2014-02-16
        • 1970-01-01
        相关资源
        最近更新 更多