Я довольно новичок в разработке веб / серверов и меня немного смущает вызов кода из ejs. У меня есть таблица, и я хочу, чтобы кнопка была в каждом ряду. Я хочу, чтобы после нажатия кнопки он удалял конкретный элемент из MongoDB (я использую Mongoose, NodeJS, Bootstrap Table, EJS).
Это мой код и кнопка
'<a class="remove" href="javascript:void(0)" title="Remove">',
'<i class="fa fa-trash"></i>',
'</a>'
- кнопка для удаления строки:
<table id="table">
<thead>
<tr>
<th data-field="name">Device name</th>
<th data-field="receivingKey">Receiving key</th>
<th data-field="operate" data-formatter="operateFormatter" data-events="operateEvents"></th>
</tr>
</thead>
</table>
<script>
var $table = $('#table');
var data = <%- JSON.stringify(devices) %>;
function operateFormatter(value, row, index) {
return [
'<a class="like" href="javascript:void(0)" title="Like">',
'<i class="fa fa-heart"></i>',
'</a> ',
'<a class="remove" href="javascript:void(0)" title="Remove">',
'<i class="fa fa-trash"></i>',
'</a>'
].join('')
}
window.operateEvents = {
'click .like': function (e, value, row, index) {
alert('You click like action, row: ' + JSON.stringify(row))
},
'click .remove': function (e, value, row, index) {
// I want the delete action here.
}
}
$(function () {
$('#table').bootstrapTable({ data: data });
});
</script>
<% } else { %>
<div>You don't have any connected devices.</div>
<% } %>
</div>
Проблема в том, что я не знаю, как это сделать. Я могу написать код в бэкэнде nodejs, но я не знаю, как вызвать его из EJS. Я сделал несколько попыток использовать app.local для передачи туда функции, но она выдавала ошибку из-за асинхронного вызова внутри.
Если вы считаете, что этот код плох, и я могу использовать что-то другое, дайте мне знать. Спасибо.