Как генерировать контент на ejs с помощью jquery после вызова ajax на экспресс-сервер
Я хочу реализовать функцию поиска на моем веб-сайте, поэтому я делаю вызов jquery ajax с текстом на экспресс-сервер, который ищет mongodb и выдает массив объектов соответствующих пользователей. Теперь я успешно получаю этот объект, но так как в ejs нет партиалов, как я могу обновить только список результатов, генерирующий HTML для каждого пользователя?
1 ответ
Пакеты узлов EJS поставляются с библиотекой JavaScript на стороне клиента, расположенной в ./node_modules/ejs/ejs.js
или же ./node_modules/ejs/ejs.min.js
, После того, как вы включите это на своей странице, вы захотите загрузить шаблон, а затем сгенерировать HTML-код из шаблона. Обнаружение неопределенного свойства объекта Javascript Sample (загрузка шаблона при загрузке страницы была бы немного более идеальной):
function getData() {
// Grab the template
$.get('/results.ejs', function (template) {
// Compile the EJS template.
var func = ejs.compile(template);
// Grab the data
$.get('/data', function (data) {
// Generate the html from the given data.
var html = func(data);
$('#divResults').html(html);
});
});
}
EJS:
<table>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
<% data.forEach(function (d) { %>
<tr>
<td><%- d.id %></td>
<td><%- d.name %></td>
</tr>
<% }); %>
</table>
Ajax позвонить в экспресс:
app.get('/data', function (req, res) {
res.send({ data: [
{ id: 5, name: 'Bill' },
{ id: 1, name: 'Bob' }
]});
});