数组在作为 EJS 变量传递后变为字符串
Array turns to string after passing as an EJS variable
所以我有一个包含数组的文件,我正在将其传递给 ejs template
。我必须在 for loop
中使用该数组来呈现数组的每个项目。但我现在得到的只是控制台中的字母。好像我不知何故把它变成了一个字符串。
有人可以帮助我使用 for 循环并使用正确的 EJS 语法来呈现数组中的每个项目吗?
代码如下:
Example.js
router.get('/example', (req, res) => {
const array = ['superman', 'batman', 'wonderwoman'];
res.render("../views/example", { data: array });
});
EJS 模板
<script>
<% if(data) { %>
const dataArr = '<%- data %>';
for ( let i = 0; i < dataArr.length; i++ ) {
console.log(dataArr[i]);
}
<% }else{ %>
console.log('no data')
<% } %>
</script>
最近使用 ejs 遇到了类似的问题,为我解决的是在脚本中使用以下分配:
const dataArr = <%-JSON.stringify(data)%>;
所以我有一个包含数组的文件,我正在将其传递给 ejs template
。我必须在 for loop
中使用该数组来呈现数组的每个项目。但我现在得到的只是控制台中的字母。好像我不知何故把它变成了一个字符串。
有人可以帮助我使用 for 循环并使用正确的 EJS 语法来呈现数组中的每个项目吗?
代码如下:
Example.js
router.get('/example', (req, res) => {
const array = ['superman', 'batman', 'wonderwoman'];
res.render("../views/example", { data: array });
});
EJS 模板
<script>
<% if(data) { %>
const dataArr = '<%- data %>';
for ( let i = 0; i < dataArr.length; i++ ) {
console.log(dataArr[i]);
}
<% }else{ %>
console.log('no data')
<% } %>
</script>
最近使用 ejs 遇到了类似的问题,为我解决的是在脚本中使用以下分配:
const dataArr = <%-JSON.stringify(data)%>;