<div>
var arrayContent='<%= myJsonArray %>'
<!--myJsonArray is sent to this ejs file using the render function in
index.js while rendering this ejs file -->
</div>
<script>
var index=0;
function myfunc(){
console.log(arrayContent); /*[object Object],[object Object],[object
Object],[object Object] */
var arrContentJson= JSON.parse(arrayContent);
console.log(arrContentJson[index]); /* Uncaught SyntaxError: Unexpected
token o in JSON at position 1 */
}
</script>
为什么我无法访问已解析的 Json 数组 (arrContentJson) 的内容。我怎样才能访问它?
最佳答案
看起来你想将一个数组从 ejs 传递给 <script>
中的 javascript 代码标签,为此你应该使用未转义的插值 <%- %>
:
<script>
var arrayContent= <%- JSON.stringify(myJsonArray) %>;
var index=0;
function myfunc(){
console.log(arrayContent);
var arrContentJson= JSON.parse(arrayContent);
console.log(arrContentJson[index]);
}
myfunc();
</script>
关于javascript - 无法访问在 Javascript 脚本标记内的 EJS 中声明的 json 数组的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626581/