【问题标题】:Rails 6 - How to include javascript_pack_tag in js.erb fileRails 6 - 如何在 js.erb 文件中包含 javascript_pack_tag
【发布时间】:2020-03-31 07:31:43
【问题描述】:

我想要实现的非常简单的事情。在我的示例new.js.erb 中的js.erb 文件中,我想添加我的共享js

$('body').append('<%= j render partial: 'web/members/new_modal' %>');
$("#new-member-modal").modal();


<%= javascript_pack_tag 'src/remove_modal', 'data-turbolinks-track': 'reload' %>

文件已经存在于 app/javascript/packs/src 并且编译没有错误。

 js/src/remove_modal-01129037158769dbdd16.js   689 KiB  src/remove_modal  [emitted] [immutable]  src/remove_modal
    js/src/remove_modal-01129037158769dbdd16.js.map   795 KiB  src/remove_modal  [emitted] [dev]        src/remove_modal

但是,一旦 js.erb 文件被触发,我会在浏览器控制台中收到错误:

Uncaught SyntaxError: Unexpected token '<'
    at processResponse (rails-ujs.js:283)
    at rails-ujs.js:196
    at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.js:264)

指编译后的javascript_pack_tag

<script src="/packs/js/src/remove_modal-22aa3c3bbe8f6a959aec.js" data-turbolinks-track="reload"></script>

【问题讨论】:

    标签: ruby-on-rails webpack


    【解决方案1】:

    我明白我做错了什么。首先,我尝试在 .js.erb 文件中生成 HTML 脚本标记,这只是内容类型问题。

    我可以通过这样做来加载js文件

    <%= render partial: 'web/members/remove_modal' %>
    

    这是向前迈出的一步,但我仍然想知道如何将文件从 javascript/packs 目录加载到 js.erb 中

    【讨论】:

      【解决方案2】:

      就我而言,我需要在我自己以外的网站上注入 pack 标签,所以我最终做了这样的事情。

      var packScript = '<%= javascript_pack_tag("api_dashboard") %>';
      var scriptSrc = packScript.split('"')[1];
      scriptSrc = myHost + scriptSrc;
      var script = document.createElement('script');
          script.type = 'text/javascript';
          script.src = scriptSrc;
          document.head.appendChild(script);
      

      这不是最漂亮的解决方案,但它对我有用。

      【讨论】:

        【解决方案3】:

        试试这个将元素添加到正文的末尾。

        $('body').append('<%= j render partial: 'web/members/new_modal' %>');
        $("#new-member-modal").modal();
        $('body').append('<%= javascript_pack_tag 'src/remove_modal' %>');
        

        【讨论】:

          猜你喜欢
          • 2022-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多