我试图将包含对象的数组传递给express中的ejs视图,但它不起作用。
在服务器中,
var roominfo = function(roomname){
this.roomname=roomname;
};
room_info_array= new Array(1);
room_info_array[0]=new roominfo("room");
app.get("/", function(req, res){
res.render('login',{room_info:room_info_array});
});
在客户端,
<script type="text/javascript">
var data = <%= JSON.stringify(room_info) %>
</script>
这显示错误&#34; Uncaught SyntaxError:Unexpected token&amp; &#34;
var data = [{"roomname":"room"}]"
我试过这个
<script type="text/javascript">
var data = <% JSON.stringify(room_info) %>
</script>
但是这表明数据未定义。
我应该如何正确地将数组传递给ejs?
答案 0 :(得分:9)
在EJS回声中,用
完成了一些事情<%= %>
或
<%- %>
在上一个示例中,您没有回显任何内容,因此没有任何内容传递给data
并且未定义。
在第一个示例中,您还要转义回显内容,因此请尝试使用未转义的字符串回显,因为这将删除实体。
var data = <%- JSON.stringify(room_info) %>