用于ejs中的循环

问题描述 投票:0回答:3

我有一个数组,其中包含一些类似这样的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。如何解决呢?

html node.js express ejs backend
3个回答
0
投票

尝试此

<% array.forEach(function(item,index){ %>
        <%= item %> 
    <% }) %>

0
投票

我不太确定该怎么做,但是请看一下:

首先,不是创建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


0
投票

''这有助于按原样打印html代码。

  • %>普通结束标记
  • -%>修剪模式('newline slurp')标记,在换行符之后进行剪裁
  • __>‘Whitespace Slurping’结束标记,删除其后的所有空格

    出于参考,请点击访问此网站EJS

© www.soinside.com 2019 - 2024. All rights reserved.