如何在EJS forEach循环中运行JQuery代码?

时间:2015-03-29 22:11:06

标签: jquery ejs

如何在EJS forEach循环中运行JQuery代码?我试图从通过Node.js获取的mongoDB文件中读取Express作为引擎。对于每个项目,我想创建一个li项目,其中项目名称为列表项目文本。目前,这就是我所拥有的:

    <% data[0].user_projects.forEach(function(project) { %>

            $('#projUL').append('<li><%= project.project_name %></li>');

    <% }); %>

然而,当我进入页面时,它不会抛出任何错误;但是在源代码中它显示了以下脚本,但它从不渲染到页面:

    <script>

            $('#projUL').append('<li>Express Project 1</li>');

    </script>

如果删除脚本标记,它只会插入相同代码的纯文本。所以,我无法弄清楚如何在EJS forEach循环中获取jQuery代码。无论我做什么,它都不会产生结果。它似乎只是用纯文本。

1 个答案:

答案 0 :(得分:1)

脚本执行时,ul projUL可能不在DOM中。如果您仍然需要在不使用模板的情况下将某些数据写入HTML,则可以尝试使用jQuery ready事件。首先使用脚本添加数据服务器端,然后在创建UL后添加它。

//this will be global or use your own scope.
window.user_projects = <%= data[0].user_projects %>;
$(document).ready(function (){
   var $list = $('#projUL');
   window.user_projects.forEach(function () {
        $list.append('<li><%= project.project_name %></li>');
   });
});