【问题标题】:window.autoInit in Rails using material-components-web and webpackerRails 中的 window.autoInit 使用 material-components-web 和 webpacker
【发布时间】:2017-11-28 09:40:32
【问题描述】:

我正在使用带有以下代码的 Rails 5.1.4。我已确认material.js 文件正在处理中,material-components-web 模块已下载并被发现。

为什么在调用window.mdc.autoInit()mdc 未定义?

// app/javascript/packs/material.js
import 'material-components-web'

// app/views/layouts/application.html.eeb
<html>
  <head>
    <%= javascript_pack_tag 'material' %>
  </head>
  <body>
    <script>window.mdc.autoInit();</script>
  </body>
</html>

我试过了

  • 单独导入@material/auto-init
  • autoInit 调用放入 onload 中
  • 在包文件中添加console.dir(window)/console.dir(this)this 不是包文件中的 window 并且导出未附加到 this

【问题讨论】:

    标签: ruby-on-rails webpack webpacker material-components material-components-web


    【解决方案1】:

    为了让 material-components-web 与 Rails 一起工作,我做了

    // app/javascript/packs/material.js
    import * as mdc from 'material-components-web'
    // for accessing it as a window object
    window.mdc = mdc
    

    然后我确保window.mdc.autoInit() 在正文的末尾被调用

    【讨论】:

    • 非常感谢,这个答案解释了 material-web-components-web 节点模块中的说明。
    猜你喜欢
    • 2018-09-25
    • 2019-02-09
    • 2020-08-23
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2018-11-19
    • 2021-11-19
    相关资源
    最近更新 更多