【问题标题】:NodeJs and Ejs Pass Arrays to pageNodeJs 和 Ejs 将数组传递到页面
【发布时间】:2013-05-06 18:14:06
【问题描述】:

我正在尝试将数组传递给 .ejs 页面,但是当我尝试使用时

var test ="<%= data %>";
console.log(test);

我得到了输出

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object

nodejs 文件上的Console.log 工作正常,但是当我尝试console.log 客户端时它搞砸了。

【问题讨论】:

    标签: node.js express ejs locomotivejs


    【解决方案1】:

    问题可能出在&lt;%= data %&gt;,而不是console.log()。如果您在客户端检查结果,您可能会看到:

    var test ="[object Object],[object Object],[object Object],...";
    

    当您简单地打印 Array 时,这将只是.join() the elements,每个都调用.toString()And:

    new Object().toString() === "[object Object]"
    

    要输出数据以便使用,您可以使用JSON.stringify()

    var test = <%- JSON.stringify(data) %>;
    

    这利用了基于 JavaScript 语法的 JSON 语法来输出 Array literal of Object literals

    var test = [{"prop":"value"},...];
    

    【讨论】:

    • 如果我不使用 &lt;%- JSON.stringify() %&gt; 而不是 &lt;%= JSON.stringify() %&gt;,我无法让它正常工作。
    • @robertklep 谢谢。忘记了。
    猜你喜欢
    • 2020-05-14
    • 2017-03-28
    • 2016-11-05
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2017-12-30
    • 2018-03-20
    相关资源
    最近更新 更多