如何从 jQuery 渲染 ejs?

Posted

技术标签:

【中文标题】如何从 jQuery 渲染 ejs?【英文标题】:How to render ejs from jQuery? 【发布时间】:2018-01-12 09:32:47 【问题描述】:

我想在从 API 获取数据后渲染一个文件。

代码

$(document).ready(function() 
   $(document).delegate( "#editUser", "click", function() 
        var userId = $(this).data('id');
        $.post("/userProfile","userId":userId,function(data, status)
        console.log(data); //gets data here
        //how to render ejs file here with the above data? 
    );

);

ejs 文件: (sample.ejs)

<% include header.html %>
 <strong>Sample ejs</strong>
<ul>
 <li><%= data.name %> says: <%= data.message %></li>
</ul>
 <% include footer.html %>

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:
$(document).ready(function() 
   $(document).delegate( "#editUser", "click", function() 
        var userId = $(this).data('id');
        $.post("/userProfile","userId":userId,function(html, status)
        $("#some-container").append(html);
    );
);

上面的代码假设你从服务器端渲染 ejs 模板,如下所示:

res.render('sample', param1: param1 ...);

【讨论】:

【参考方案2】:

您无法使用通过 ajax 调用收到的数据来渲染 ejs 文件。 ejs 在服务器端呈现,而 ajax 调用发生在客户端。 要解决您的问题,您需要自行在服务器端获取用户数据并将其发送到 ejs 文件。

【讨论】:

以上是关于如何从 jQuery 渲染 ejs?的主要内容,如果未能解决你的问题,请参考以下文章

使用 EJS 或 jQuery 设置 HTML 标签的属性

antd pro如何引入jquery

节点 JS 堆栈。通过 Jquery 和 AJAX 发布 ejs 数据时遇到问题

如何将数据从猫鼬模型显示/渲染到 ejs 文件

jquery datatable - 如何使用渲染函数从另一列获取数据

我想使用 Jquery .change(function... (JS, EJS, Mongoose, Express) 显示数组中的特定项目