【发布时间】:2020-11-20 21:36:17
【问题描述】:
我在 nodejs 中渲染期间传递了两个变量。假设它们是模板和 treeInfo。
在 template.ejs 我有。
<% for(var i=0; i<templates.length; i++) {%>
<%= templates[i]._id %> = <%= treeInfo.owner[0] %><br>
<% if (templates[i]._id == treeInfo.owner) { %>
ok
<% } %>
<% } %>
所以实际上 if == 没有按预期工作。这是输出。
59519779f36d284c166f9bea = 5941789e36593262bed9256b
5941789e36593262bed9256b = 5941789e36593262bed9256b
所以它不会以正确的方式比较它们。如果我只是将 treeInfo.owner 替换为“5941789e36593262bed9256b”之类的内容,它确实可以正常工作。
我假设 ejs 不支持变量比较?
谢谢
【问题讨论】:
-
嘿,我刚刚看到您通过执行 templates[i]._id = treeInfo.owner[0] 来完成作业。但是你将它与 treeInfo.owner 进行比较。不应该是'if (templates[i]._id == treeInfo.owner[0])'。正在使用对象的值进行比较。
-
嗨杜安,无论哪种方式都行不通:/
-
最后我做了 JSON.stringify(templates[i]._id) == JSON.stringify(treeInfo.owner[0]) 现在它工作正常。谢谢!
-
酷。是的,我只是告诉你你没有包含 treeInfo.owner[0] 而是与 treeInfo.owner 进行比较的错字。猜猜它在 JSON.stringify 解决方案中得到纠正。