Сценарий
Мы используем скрипт веб-компонента element.js
в нашем приложении Angular.
Подход
Схема пользовательских элементов
Включите CUSTOM_ELEMENTS_SCHEMA
, позволяющий Angular распознавать пользовательские элементы. В пределах app.module.ts
:
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@NgModule({
... schemas: [CUSTOM_ELEMENTS_SCHEMA] })
Полифиллы Установить
npm install -D @webcomponents/webcomponentsjs
Копировать полифиллы
Команда angular.json
copy:
"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "**/*.js",
"input": "node_modules/@webcomponents/webcomponentsjs",
"output": "webcomponents/"
}
Загрузка полифиллов
В течение src/index.html
выполните:
<script src="webcomponents/webcomponents-loader.js"></script> <script> if ( !window.customElements ) { document.write('<!--') } </script> <script src="webcomponents/custom-elements-es5-adapter.js"></script> <!-- ! KEEP ME -->
Служить
Тестовая подача строительных лесов:
ng serve -o
Скрипт элемента
Поместите element.js
в src/assets/js
:
Сделайте элемент частью сборки, добавив его в angular.json
:
"scripts": ["src/assets/js/element.js"]
Теперь вы можете использовать элемент в шаблонах компонентов.