Angular Elements предоставляет возможность использовать компоненты Angular как стандартные Web Components, совместимые с любыми веб-приложениями, независимо от используемого фреймворка.
Создание Angular Element Любой Angular-компонент
может быть превращен в кастомный элемент с помощью функции
createCustomElement.
import { createCustomElement } from '@angular/elements';
import { Injector } from '@angular/core';
import { MyComponent } from './my.component';
const el = createCustomElement(MyComponent, { injector: this.injector });
customElements.define('my-element', el);Инжектор зависимостей Для корректной работы Angular Element требуется передать инжектор, чтобы компонент имел доступ к сервисам и другим зависимостям Angular.
Регистрация элемента в DOM После регистрации
через customElements.define элемент можно использовать в
HTML как обычный тег:
<my-element></my-element>--single-bundle, так
как каждый элемент содержит необходимые runtime-библиотеки Angular.Angular Elements превращает Angular-компоненты в полностью изолированные и переносимые элементы, сохраняя все преимущества реактивного программирования и встроенных механизмов Angular.