我有一个数组,其中包含一些类似这样的html内容。
const articleArray=['<p>first text</p>\r\n','<p>second text></p>\r\n','<p>third text</p>\r\n']
我需要通过获取请求将其呈现在ejs文件中
request.render('viewArticles',{array : articleArray})
其中'viewArticles'是一个ejs文件。我已经使用中间件将视图引擎设置为ejs。这是ejs中的代码
<% for(arr in array) {%>
arr
<% } %>
我无法呈现任何HTML。如何解决呢?
尝试此
<% array.forEach(function(item,index){ %>
<%= item %>
<% }) %>
我不太确定该怎么做,但是请看一下:
首先,不是创建HTML元素数组,而是如何创建对象数组,如下所示:
const articles = [{text: "first text"} , {text: "second text"}, {text: "third text"}];
这样,您只需要编写一次HTML,对于编程我是相当陌生的,但是我看不到会以HTML响应的情况,通常是在数据库中查询数据或从JSON文件中获得响应。 ..并假设实际上将数组传递给.ejs文件,让它进行迭代,
<% for(let a of articles){ %>
<p> <%= a.text %> </p>
</br>
<% } %>
如果数组是NOT通过,请在您的代码中检查这些内容:
// If you installed
..."dependencies" : {
"ejs": "x.x.x",
} //Check the package.json file
// If you imported correctly
import ejs = require("ejs");
// If you specified the views path
app.set("views", path.join(__dirname, "views"));
// And the views engine
app.set("view engine", "ejs");
// And your route
request.render('viewArticles',{ articles : articles }) // Check if the file name is correct, I get this wrong many times
''这有助于按原样打印html代码。
__>‘Whitespace Slurping’结束标记,删除其后的所有空格
出于参考,请点击访问此网站EJS