Пример использования: Клиент хочет создать библиотеку, состоящую из Angular 2 компонентов, но предоставляющую абстрагированный, технологично-агностический интерфейс для конечного пользователя (разработчика) этой библиотеки, так что эти пользователи могут использовать простой JavaScript и не знать о внутренних компонентах библиотеки.
Трудность возникает из следующего:
- Существует страница, в которой используется обычный JavaScript. Эта страница разработана сторонними организациями.
- Третья сторона должна иметь возможность вставить данный компонент Angular 2 в определенные места (узлы DOM) на странице.
- Скажем, что компонент
<mg-input>
, и он должен отображаться в заголовке простой страницы JavaScript, но не только там - также в форме вниз по странице. Два разных места, два разных узла DOM, которые имеют между собой простой html.
Вопрос: как мы загружаем компонент в определенный DOM node и как мы передаем конфигурацию (а не примитивы, но сложный объект) для этих компонентов?
В мире React
это выполняется просто запустив ReactDom.render(domEl, <CustomInput nonPrimitiveConfig={config}/>)
и в зависимости от того, что domEl
и config
, компонент будет отображаться в разных местах с различной конфигурацией.
Как это сделать в Angular 2?