jquery ajax 呼び出しの後に ejs で DOM の一部を作成する方法を見つけるのに苦労しています。この機能は、うまく機能するライブ検索であり、リクエストをサーバーに送信し、データベースを検索し、検索に基づいてユーザーのリストを含む変数を返します。問題はそこから始まります。EJS ではパーシャルが許可されなくなり、javascript を html に埋め込む方法が 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 });
};
リクエストは更新された個人変数を返し、連絡先リストの html を生成する必要があります。私は多くの方法を試しましたが、それを達成することはできません。ページが最初にレンダリングされる方法は次のようになっているため、更新された個人変数に基づいてリストを更新する方法がわかりません。
HTML は次のようになります。
<% if (persons.length) { %>
<% persons.forEach(function(person) { %>
<div class='contactlistusername'><%= person.username %></div>
<% })}%>