рельсы частичный рендеринг HTML не запускает JavaScript

1

Привет Я вызываю частичный файл контроллера, но javascript внутри частичного не выполняется. Частичный формат.html.erb.

<% content_for :javascript do %>

  <script type="text/javascript">
    var eventName = typeof(Turbolinks) !== 'undefined' ? 'page:change' : 'DOMContentLoaded';

    document.addEventListener(eventName, function() {
      console.log("hello");


      <% if flash[:notice] %>
        ShopifyApp.flashNotice("<%= escape_javascript flash[:notice].html_safe %>");
      <% end %>

      <% if flash[:error] %>
        ShopifyApp.flashError("<%= escape_javascript flash[:error].html_safe %>");
      <% end %>
    });
  </script>
<% end %>

является кодом для частичного

 respond_to do |format| 
    if @timer.save



      flash[:notice]="updated"
      format.html{render :partial => "layouts/flash_messages", :locals => {:flash => flash}}





    else
        flash[:error]="error"
      format.html{render :partial => "layouts/flash_messages", :locals => {:flash => flash}}
    end

это код контроллера.

  • 2
    Эта часть ничего не отображает, она просто добавляет javascript в хранилище содержимого :javascript . Обычно этот метод content_for имеет соответствующий <%= yield :javascript %> или <%= content_for :javascript %> другом месте макета.
  • 0
    Спасибо Аарону Брекенриджу за то, что попробую даю :)

1 ответ

1
Лучший ответ

Если вы хотите отобразить Javascript в rails, используйте ниже метод.

Код контроллера выглядит так:

def create
  @user = User.find(params[:id])
  respond_to do |format|
    format.html {redirect_to @user }
    format.js
  end
end

Этот код, который будет отображаться, будет выглядеть.

filename: create.js.erb

 $("#someidname").html("<%= @user.email %>");

Примечание @user также доступен здесь. вы можете отобразить другие частичные также:

$("#someit").html("<%= escape_javascript(render('users/email')) %>");

Кроме того, убедитесь, что вы отправляете запрос ajax.

  • 0
    Спасибо Hitesh RAnaut это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню