#ajax #node.js #express #ejs
#ajax #node.js #выразить #ejs
Вопрос:
У меня есть экспресс-приложение с node.js это,
1) app.get('/', routes.index)
указывает на мой index.ejs.
2) на моем index.ejs есть кнопка. При нажатии на нее я хочу вызвать функцию DataGrab в app.js чтобы извлекать данные удаленно и отображать в index.ejs как <table>
динамически.
в моем app.js
var data=[];
grab = function() {
.... grab data remotely and push to data[]
}
Поскольку кнопка фактически находится на стороне клиента, если я хочу вызвать grab() в app.js чтобы заполнить данные [] и использовать их для отображения таблицы в index.ejs, является ли использование ajax единственным способом? Если да, не могли бы вы поделиться простым примером кода?
С уважением, Hammer
Комментарии:
1. Да, AJAX — это единственный способ (без обновления) — просто вызовите свой маршрут через JS
2. здесь все еще существует проблема, связанная с тем, что после того, как я выполню этот вызов ajax, браузер перейдет к localhost:3000 / grab. Если я нажму назад btn на localhost: 3000. Результаты корректно добавляются именно к элементу таблицы. Могу ли я узнать, как остановить эту неожиданную навигацию?
Ответ №1:
Спасибо за tymeJV, он отправляет, я использую приведенный ниже код ,
* отредактируйте, чтобы добавить вызов ajax
внутри моего ejs я использую
<script>
$.get('/grab',function(data) {
for(var h=0; h<data.length;h ){
$('#newsItemTable').append('<tr><td>' data[h].name '</td></tr>');
}
});
</script>
в то время как в моем app.js Я использую
app.get('/grab', function(req, res) {
....
res.send(data);
}
Комментарии:
1. здесь все еще существует проблема, связанная с тем, что после того, как я выполню этот вызов ajax, браузер перейдет к localhost:3000 / grab. Если я нажму назад btn на localhost: 3000. Результаты корректно добавляются именно к элементу таблицы. Могу ли я узнать, как остановить эту неожиданную навигацию?