Частичный рендеринг из 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 2

1 ответ:

Чтобы отправить переменные JS в ERB, вы должны использовать Ajax. JS работает в браузере, а ERB - на сервере, поэтому нет никакого способа найти способ использования $('#table').load() там.

Если только вы не могли бы использовать один из миллионов способов, которыми JS может приготовить свой собственный новый HTML, без ERB. Единственная проблема в том, что вы не были бы сухими, если бы вам также нужно было вывести тот же HTML во время загрузки страницы с сервера.