Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对expressjs进行ajax调用后,如何使用jquery呈现部分ejs模板_Javascript_Jquery_Express_Ejs - Fatal编程技术网

Javascript 在对expressjs进行ajax调用后,如何使用jquery呈现部分ejs模板

Javascript 在对expressjs进行ajax调用后,如何使用jquery呈现部分ejs模板,javascript,jquery,express,ejs,Javascript,Jquery,Express,Ejs,在jqueryajax调用之后,我很难找到如何在ejs上创建部分DOM。该功能是一个实时搜索,工作非常好,它将请求发送到服务器,搜索数据库并返回一个包含基于搜索的用户列表的变量。问题就从这里开始,因为EJS不再允许使用片段,在html上嵌入javascript的方法在jquery上也不起作用,或者至少我不知道如何实现。我的心被卡住了,所以非常感谢任何帮助 这是Ajax调用 $.ajax({ url: 'http://localhost:3000/contactsearch', t

在jqueryajax调用之后,我很难找到如何在ejs上创建部分DOM。该功能是一个实时搜索,工作非常好,它将请求发送到服务器,搜索数据库并返回一个包含基于搜索的用户列表的变量。问题就从这里开始,因为EJS不再允许使用片段,在html上嵌入javascript的方法在jquery上也不起作用,或者至少我不知道如何实现。我的心被卡住了,所以非常感谢任何帮助

这是Ajax调用

$.ajax({
    url: 'http://localhost:3000/contactsearch',
    type: 'post',
    dataType: 'text',
    data: { searchquery: searchquery}
})
.done(function(res){
  var persons = res;
})
Express以以下方式呈现页面:

exports.search = function(req, res){
res.render('./contacts/search', { title: 'Contact search', persons: persons });
};
请求返回一个更新的persons变量,我需要为联系人列表生成html。我尝试了很多方法,但都没能实现。页面最初呈现的方式是这样的,因此我不知道如何根据updated persons变量刷新列表

HTML如下所示:

 <% if (persons.length) { %>
    <% persons.forEach(function(person) { %>
    <div class='contactlistusername'><%= person.username %></div>
    <% })}%>

尝试在不同的模板中处理每个AJAX更新的成功结果:(在js中)

如果persons是从AJAX响应中返回的数组对象,则在不同的模板文件中处理:(在模板中)


is persons是数组对象??persons是数组对象,嵌入式js在初始加载时工作良好。问题是当jquery发出ajax调用并获取更新的persons数组对象时,如何触发以仅加载您编写的代码。如果我把你写的东西放到ajax成功回调中,仍然什么都不会发生。。。
var renderedData = new EJS({url:'/template/rendering.template'}).render({data:persons});
$('.contact').html(renderedData);
<% if (persons.length) { %>
<% for(var i in persons) { %>
<div class='contactlistusername'><%= persons[i].username %></div>
<% }} %>