javascript - rails 部分渲染 html 不运行 javascript

标签 javascript ruby-on-rails ruby

您好,我正在从 Controller 文件中调用部分,但部分中的 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

是 Controller 代码。

最佳答案

如果您想在 rails 中呈现 Javascript,请使用以下方法。

Controller 代码如下:

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

将要呈现的代码模板看起来像。

文件名:create.js.erb

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

请注意@user 也可以在这里使用。您也可以渲染其他部分:

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

此外,请确保您发送的是 ajax 请求。

关于javascript - rails 部分渲染 html 不运行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47683144/

相关文章:

ruby-on-rails - rails 3 中的拉/推状态

javascript - Mui V5 Snackbar 自定义位置

javascript - 使用 jQuery 折叠菜单和一个切换折叠的按钮

jquery - 不要在 Ruby on Rails 6 中连接 Bootstrap 4 和 jQuery

ruby-on-rails - 在与 rails 的深层嵌套关联中查找记录

ruby-on-rails - 给定记录和顺序条件,查找之后或之前的记录

ruby-on-rails - 如何在cucumber中看到页面写入 "should not"?

javascript - 为什么我的 JavaScript 对象中的属性未定义?

c# - 从 C# 背后的代码访问 HTML 控件

ruby-on-rails - 使用登录用户测试 Rails 功能(未定义方法 'session')