Javascript 节点、表达式、Swig模板-HTML属性中的变量
我正在使用Node/Express应用程序作为模板引擎 我可以很好地将数据传递到模板中,但在使用变量时遇到了问题 我有:Javascript 节点、表达式、Swig模板-HTML属性中的变量,javascript,node.js,express,swig-template,Javascript,Node.js,Express,Swig Template,我正在使用Node/Express应用程序作为模板引擎 我可以很好地将数据传递到模板中,但在使用变量时遇到了问题 我有: {% for person in people %} <input type="radio" name="id" value="{{ person._id }}" id="id_123" /> <label for="id_123">{{ 'id = ' + person._id }}</label><br /> {%
{% for person in people %}
<input type="radio" name="id" value="{{ person._id }}" id="id_123" /> <label for="id_123">{{ 'id = ' + person._id }}</label><br />
{% endfor %}
为什么我在尝试使用
person时会得到[object object]
。\u id
在HTML属性中,然后在使用person时得到我想要的正确值。\u id
在HTML标记中..?对,person.\u id
实际上是一个猫鼬ObjectId
,这对我来说很有意义。但是,当Iconsole.log
it时,它会显示一个字符串
不管怎样,只要做
''+person.\u id
就可以满足我的需要。我认为你需要使用tilde来实现这个目的:
{{ 'id = ' ~ person._id }}
person.\u id
是一个有自己属性的猫鼬对象。因此,如果在swig
模板中使用person.\u id
,它会将其作为对象。通过执行'id='+person.\u id
,它在内部将其转换为person.\u id\u toString()
尝试使用:
value={{ person._id.toString() }} if you want _id to be string
value={{ person._id.toString() }} if you want _id to be string