window.autoInit в Rails с использованием material-components-web и webpacker

Я использую 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 внутри загрузки
  • Добавление console.dir(window)/console.dir(this) внутреннего файла пакета. this не находится window в пакетном файле, и экспорты не прикрепляются к this

person rogermushroom    schedule 28.11.2017    source источник


Ответы (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() вызывается в конце тела

person rogermushroom    schedule 28.11.2017
comment
большое спасибо за это, этот ответ объяснил инструкции, найденные в модуле узла материала-веб-компонентов. - person Nitrodist; 31.05.2020