我在下面的EJS中有代码,
<script>
var row =<%-JSON.stringify(data)%>
console.log(row);
</script>
<% for(var i=0; i<JSON.stringify(data).length; i++) {%>
<tr>
<td>
<%= JSON.stringify(data)[i].id%>
</td>
</tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)
行的输出是正确的,一个包含3个对象的数组,每个对象都有属性id,名称等.我可以操作行来在JS中弹出表.但是,我想知道是否有办法让它以上述方式完成?
当我运行上面的代码时,JSON.stringify(data).length不是3,而是整个字符串的长度.
另一个问题是当我尝试添加时
<%alert('t'); %>或<%window.alert('t'); %>,它给了我'未定义'的错误......
帮助赞赏.
关心锤子
我完全迷失了; 我正在使用NodeJS来获取JSON,我需要将变量传递给我的页面并让JavaScript使用数据.
app.get('/test', function(req, res) {
res.render('testPage', {
myVar: 'My Data'
});
Run Code Online (Sandbox Code Playgroud)
这是我的Express代码(非常简单,用于测试目的); 现在使用EJS我想收集这些我知道要在页面上呈现的数据
<%= myVar %>
Run Code Online (Sandbox Code Playgroud)
但是我需要能够在JavaScript中收集这些数据(如果可能的话,在.js文件中),但现在只是在Alert框中显示变量我试过了
在玉中它就像alert('!{myVar}')或!{JSON.stringify(myVar)}.我可以在EJS中做类似的事吗?我不需要任何字段,<input type=hidden>并在javascript中获取字段的值.如果有人可以帮助我们非常感激