Я делаю доказательство концепции со следующими критериями:
- Разрешить каждому элементу меню находиться в другом проекте Bitbucket.
- Создавайте один компонент, не ломая остальные.
- Компоненты могут общаться друг с другом.
- Если один из компонентов обновляется, все приложения автоматически должны видеть последнюю версию этого компонента.
- All teams will be using the following versions:
- Angular CLI: 7.0.7
- Узел: 10.13.0
- Угловой: 7.0.4
- Angular CLI: 7.0.7
Я сделал пример, используя элементы Angular, расширяя HTML.
Каждая команда Angular выполняет развертывание, создавая файл 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), и при нажатии на каждое меню тег динамически создается внутри основного элемента div.
menu team1 >> this.renderer.createElement ("team1")
menu team2 >> this.renderer.createElement ("team2")
menu team3 >> this.renderer.createElement ("team3")
Если какой-либо команде требуется доступ к веб-службе, например, для заполнения таблицы, таблица отображается раньше.
Поэтому я делаю запрос в веб-службе, затем динамически создаю тег таблицы и передаю параметр в Popular.
В проекте 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>
При этом все запросы к вебсервису будут в основном проекте и всем командам придется писать код в этом проекте.
- Есть ли другие возможности?
- Можете ли вы продолжать делать это таким же образом, но менее сложным способом?