Частичный рендеринг из javascript с пользовательскими локальными объектами
Как сделать частичный из JavaScript с обычаем местных жителей?
У меня есть что-то вроде этого:
var begin = $("#begin_date").val();
var end = $("#end_date").val();
$("#table").html("<%= escape_javascript(render partial: 'my_partial', locals: { begin_date: begin_d, end_date: end_d}) %>")
Итак, я знаю, что "begin_d" и "end_d" должны быть .erb для того, чтобы быть загруженным. Есть в любом случае, чтобы пройти на JavaScript Варс для того, чтобы сделать частичное с пользовательские значения местные жители? Или любой другой способ добиться того же?
Мое намерение состоит в том, чтобы обновить таблицу на основе дат (если они изменены).
Редактировать:
Я нашел ответ. Флип помог указывая, что я должен использовать Ajax. Поэтому теперь я сделал запрос Ajax к контроллеру, который просто делает:
respond_to do |format|
format.html {render partial: 'my_partial', locals: {begin_date: params[:begin_date], end_date: params[:end_date]}}
1 ответ:
Чтобы отправить переменные JS в ERB, вы должны использовать Ajax. JS работает в браузере, а ERB - на сервере, поэтому нет никакого способа найти способ использования
$('#table').load()
там.Если только вы не могли бы использовать один из миллионов способов, которыми JS может приготовить свой собственный новый HTML, без ERB. Единственная проблема в том, что вы не были бы сухими, если бы вам также нужно было вывести тот же HTML во время загрузки страницы с сервера.