Какова альтернатива: before &: after of rails 2.3. * В Rails 3? - PullRequest
0 голосов
/ 14 сентября 2010

Я использую удаленную форму в Rails 3. Она отлично работает, но я хочу показать / скрыть счетчик во время запроса ajax.

В rails 2.3. * Мы используем: before &: after в удаленной форме, чтобы показать/ hide spinner

Что мне делать в Rails 3, так как удаленная форма Rails 3 не содержит таких параметров.

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Вот рабочее решение, которое я попробовал:

В моем представлении файла я использую :onSubmit, чтобы показать счетчик:

<% form_for("", @search,  
            :url => {:action => "search"}, 
            :html => {:id => "search_form", 
                      :onSubmit => "$('search-loader').show();"}, 
            :remote => true) do |f|  %>

В моем действие поиска , я добавил одну строку, чтобы скрыть это:

render :update do |page|
    ...
    page << "$('search-loader').hide();"
end

Отлично работает ..!

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

Ну, я использую jQuery, и я делаю следующее, пытаясь быть ненавязчивым:

Добавьте это прямо перед тегом </head>:

= yield :document_ready

Тогда в вашем application_helper.rb:

  def document_ready(content)
    html = %{ $(function(){#{content}})}
    content_for(:document_ready){ javascript_tag(html) }
  end

Это позволяет загружать и запускать javascript после загрузки документа.

Вверху представления, содержащего вашу форму, добавьте:

- document_ready("hide_button_show_spinner('your_button_id')")

В приложении. Js

function hide_button_show_spinner(element_id) {
  $('#'+element_id).bind('click', function() {
    $('#'+element_id).after("<img src='/path/to/your/spinner.gif' class='ajax_loader' id='"+element_id+"_ajax_loader' style='display: none'/>")
    $('#'+element_id).hide();
    $('#'+element_id+'_ajax_loader').show();
  });
}

Это скроет кнопку и покажет спиннер после нажатия кнопки. Возможно, вам придется адаптировать это к вашему конкретному случаю. Затем вы можете показать кнопку и скрыть счетчик в своем ответе javascript (файл .js.erb, который вы отображаете из действия, вызванного запросом ajax).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...