【问题标题】:EJS Variable Not DisplayingEJS 变量不显示
【发布时间】:2017-09-23 10:02:45
【问题描述】:

我正在使用随机报价机。这是我的节点资料:

var express = require("express");
var app = express();

app.set("view engine", "ejs");

app.get("/", function(req,res){
    var data = "http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1";
    res.render("home", {data: data});
});

app.listen(process.env.PORT, process.env.IP, function(){
    console.log("SERVER STARTED"); 
});

这里是 EJS 的东西...

<h1>HELLO</h1>

<li><%= data.data %></li>

一切都很好,除了这里的问题......

EJS 括号中的“data.data”,什么都没有。那里什么都没有。我绞尽脑汁想弄清楚发生了什么,但我做不到。括号符号也不起作用。有什么想法吗?

谢谢!

【问题讨论】:

  • 有同样的问题。有没有想过?

标签: node.js ejs


【解决方案1】:

当您将内容传递给渲染器时,您在第二个参数中传递的对象在 ejs 渲染页面中成为“全局”。因此,当您设置如下内容时:

res.render("home", { myString: "I like strings" });

...您可以通过引用传递的对象 inside 来访问它:

&lt;li&gt;&lt;%=myString%&gt;&lt;/li&gt;

所以你的 data.data 没有指向任何东西。

【讨论】:

  • 当数据对象的属性名称为小驼峰式时,我遇到了问题。 EJS 不会呈现该变量的值。例如: {"myString": "asd"} 不呈现值 "asd"。但如果是: {"mystring": "asd"} 会正确呈现它。
【解决方案2】:

我有同样的问题,这是我的解决方案。在data之后添加.toJSON()

<li><%=data.toJSON().data%></li>

【讨论】:

    猜你喜欢
    • 2018-06-03
    • 2014-12-05
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 2017-08-20
    • 1970-01-01
    相关资源
    最近更新 更多