2

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

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

// 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
4

1 回答 1

3

为了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()在身体的末端被调用

于 2017-11-28T11:40:12.163 回答