Ruby on rails: как обновить div с частичным, не совершая ajax-вызов на сервер - PullRequest
1 голос
/ 17 мая 2011

Я хочу обновить div с содержимым партиала, когда пользователь нажимает переключатель.Теперь содержимое этого частичного является статическим HTML (форма может быть).Поэтому, поскольку у меня нет данных для извлечения с сервера, я неохотно совершаю ajax-вызов на сервер, чтобы просто извлечь эту часть и обновить div.Вот что я попробовал.

 function loadControlPanel(type)
      {
        alert(type);
        $(controlPanelDiv).appendChild("<%=  render :partial => 'layouts/agency_selection' %>");
      }


<input type="radio" name="view" value="agencies" onClick ="loadControlPanel(this.value)" /> Agencies

Но это не работает, потому что рендер заменяет весь фрагмент там вместе с новыми строками, которые выбрасывают ошибки JavaScript в function loadControlPanel(type).

Есть ли способ преодолетьэтот?или другое простое решение?

Спасибо, Шаунак

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Почему вы не визуализируете статическую часть в макете в скрытом элементе div, а затем клонируете этот идентификатор и поместите его в свой innerHTML с помощью javascrtipt?

Кстати, просто вызов "render: частичный" не означает, что это Ajax-вызов.

0 голосов
/ 17 мая 2011

Хорошо, вот работа, которую я нашел, чтобы обойти это. Я вызываю 'gsub' на рендере, чтобы заменить символы новой строки ничем. Я все еще открыт для более элегантных решений.

function loadControlPanel(type)
      {
        alert(type);
        $(controlPanelDiv).innerHTML = '<%=  (render :partial => "layouts/agency_selection").gsub("\n","") %>';
      }
...