JQuery вызов для частичного не работает, если есть код RoR в нем? - PullRequest
0 голосов
/ 14 октября 2010

Я пытаюсь разбить на страницы работу с jQuery.Я использую самоцвет will_paginate.Это работает нормально (без JavaScript).Я попытался после Railscast (http://railscasts.com/episodes/174-pagination-with-ajax), но у меня все еще есть проблема.

show.js.erb

$('#comments').html("<%= escape_javascript(render "comments/comment.html.erb") %>");

Это работает, когданеполный файл - это просто html. IE нет <% кода, подобного этому%>. Почему? Является ли .html неправильной функцией jQuery для вызова? Что я должен использовать?

Из-за попыток вещей этот код может бытьпроблема:

$(".pagination a").click(function() {
    //$(".pagination").html("Page is loading...");
    $.get(this.href, null, null, "script");
    return false;
  });

что такое "скрипт"?

Ответы [ 3 ]

0 голосов
/ 14 октября 2010

Я не использую ruby, и я совершенно не связан с jQuery, но если я правильно интерпретирую это, вы пытаетесь добавить HTML к элементу полностью на стороне клиента , затем ожидая, что разметка на стороне сервера будет проанализирована в нем.

Этот код никогда не выполняется на сервере. Чтобы проанализировать разметку на стороне сервера, вам потребуется выполнить другой запрос к серверу (например, с XMLHttpRequest), который, возможно, обработает файл с это точная разметка на сервере, которая затем обработает ваши серверные директивы.

Возможно, вам будет интересна функция загрузки jQuery для этого.

0 голосов
/ 14 октября 2010

После долгих кований я нашел свою проблему:

Я добавил это к своей части:

<%= will_paginate @comments %>
<% @comments.each do |comment| %>
//partial stuff
<% end %>

Скринкаст не показал, куда он поместил строку will_paginate, поэтому я предположил, что она осталась в файле поста. Это также не показывало цикл в частичном файле. Я не осознавал, что вы должны были сделать это, так как rails делает это в любом случае, когда вы вызываете частичный файл.

0 голосов
/ 14 октября 2010

Хотя я не знаю, ruby, согласно странице, на которую вы ссылаетесь, отсутствует пара круглых скобок:

$('#comments').html("<%= escape_javascript(render("comments/comment.html.erb")) %>");

...