частичное отображение с js.haml в ответе AJAX - PullRequest
2 голосов
/ 13 июня 2011

У меня проблемы с обработкой ответа через AJAX.

Вот как выглядит мой .js.haml вид:

:plain
  $("#cart").replaceWith("#{escape_javascript(render 'carts/cart')}");

HTML-код частично отображается неправильно и нарушает HTML-макет. В веб-инспекторе Safari я получаю следующий ответ XHR:

$ ("# корзина"). ReplaceWith ("Ваш заказh2>

Понятно, что HTML-код не работает: тег h2 не закрыт должным образом, значения атрибутов не заключены в скобки и т. Д.

Часть страницы, которая была заменена таким ответом, будет повреждена.

Я также пробовал некоторые другие методы, такие как:

!= "$('#cart').replaceWith('#{escape_javascript(render 'carts/cart')}');"

Результат тот же.

Однако, простые случаи, такие как

:plain
  $("#cart").replaceWith("<p>Test</p>");

Работают нормально.

Проблема в рендеринге частичного.

PS: это частичное 100% правильное значение, поскольку оно используется при обычном рендеринге страниц.

Что тут может быть не так.

Спасибо.

1 Ответ

0 голосов
/ 24 июня 2011

Я нашел причину. Функция escape_javascript работает некорректно из-за ошибки , обнаруженной в Rails 3.0.8.

...