Я делаю проверку концепции по следующим критериям:

- Разрешить каждому пункту меню быть в другом проекте Bitbucket.
- Создание одного компонента без разрушения других.
- Компоненты могут взаимодействовать друг с другом.
- Если один из компонентов обновляется, все приложения автоматически должны видетьпоследняя версия этого компонента.
- Все команды будут использовать следующие версии:
- Угловой CLI: 7.0.7
- Узел: 10.13.0
- Angular: 7.0.4
Я сделал пример с использованием угловых элементов, расширяющих HTML.
Каждая угловая команда выполняет развертываниесгенерировав файл JavaScript (team1.js, team2.js, team3.js), зарегистрировав его тег.
Пример:
<team1> </ team1> customElements.define("team1", ....);
<team2> </ team2> customElements.define("team2", ....);
<team3> </ team3> customElements.define("team3", ....);
Основное приложение Angular, которое имеет меню,импортирует файлы JavaScript (team1.js, team2.js, team3.js) и, при нажатии на каждое меню, тег dynamically создан внутри div main.
menu team1 >> this.renderer.createElement ("team1")
menu team2 >> this.renderer.createElement ("team2")
menu team3 >> this.renderer.createElement ("team3")
Если какой-либо команде необходим доступ к веб-сервису, например, для заполнения таблицы, таблица обрабатывается раньше.
Поэтому я делаю запрос в веб-сервисе, а затемЯ динамически создаю табличный тег и передаю параметр популярному.
В проекте Angular он обычно работает без этой необходимости.Но с элементами Angular я только что получил:
this.data = data returned from webservice
const element = this.renderer.createElement ("component-table");
this.renderer.setProperty (element, "data", this.data);
Все это работает, но мне трудно работать с createElement.
Я мог бы сделать этот запрос веб-сервиса в основном проекте ипройти через параметр:
<team1 data = "data"> </ team1>
При этом все запросы к веб-сервису будут в основном проекте, и всем командам придется кодировать в этом проекте.
- Есть ли другиевозможности?
- Можете ли вы продолжать делать это таким образом, но менее сложным способом?