我使用http://paularmstrong.github.io/swig/作为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 />
{% endfor %}
people
对象没问题,循环有效。但是,您会注意到我尝试使用person._id
两次 - 第一个不起作用,第二个不起作用。
value="{{ person._id }}"
// value="[object Object]"
<label for="id_123">{{ 'id = ' + person._id }}</label>
// <label for="id_123">id = 568bc95f317e30e813541ab0</label>
为什么我在尝试在HTML属性中使用[object Object]
时获得person._id
,然后在HTML标记内使用person._id
后获得正确的值?
答案 0 :(得分:0)
是的,person._id
实际上是一只猫鼬ObjectId
,现在对我来说很有意义。但是当我console.log
时,它会显示一个字符串。
无论如何,只需按'' + person._id
进行操作即可。
答案 1 :(得分:0)
我认为你需要为此目的使用代字号:
server {
listen 443 default_server ssl;
server_name example.com;
# server_name www.example.com; # This is NO NEEDED, only example.com requests arrives
ssl on;
.
.
}
答案 2 :(得分:0)
person._id
是一个猫鼬对象,它有自己的属性。因此,如果您在person._id
模板中使用swig
,则会将其作为对象。通过执行'id = ' + person._id
,它会将其内部转换为person._id_toString()
。
尝试使用:
value={{ person._id.toString() }} if you want _id to be string