passing an array from EJS to Javascript

一世执手 提交于 2019-12-02 06:35:20

You have to stringify the array

var test = <%- JSON.stringify(level_tab) %>;

I'm not familiar with EJS but in general the same principle should apply even if syntax is slightly different in EJS.

I process like that to pass array from express to an EJS page: in the node.js code :

.post('/action', function(req, res) {
        var arr = ["premier", "second", "troisième", "quatrieme", "cinquieme"];
        res.render('page.ejs', {arr: arr}); 
});

And in page.ejs :

<% for(var i = 0 ; i < arr.length ; i++) { %>
       <tr>
            <td><%= arr[i] %></td>
       </tr>
<% } %>

i found a solution it's work, but i don't know if there is other ways to do it. i change

var test = '<%- level_tab %>';

by this loop,

<% for(var j=0; j<level_tab.length; j++) { %>
            level_tab.push('<%- level_tab[j]%>');
<%}%>
engineforce

Refer to JSON from EJS to JSON object in JS

Remove the single quote:

var test = <%- JSON.stringify(level_tab) %>;

Use this it will work fine.(Don't use single quotation )

        var test = <%-JSON.stringify(level_tab) %>; 
        console.log("test :"+test);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!