Связь одноконтурного контейнерного приложения с дочерним приложением angular - PullRequest
0 голосов
/ 06 апреля 2020

Мне нужна помощь, чтобы связаться с моим контейнером single-spa с загруженным приложением angular (ребенок). когда пользователь нажимает на опцию родительского приложения (spa-контейнера), это должно сообщаться дочернему приложению для изменения режима.

это происходит не очень часто. Но не удалось найти способ связи из контейнера в загруженное приложение angular.

есть детали, предоставленные самим спа: детали спа-связи , но не ясно, и нет подробных шагов. кто-нибудь поможет мне?

1 Ответ

1 голос
/ 07 апреля 2020

Я являюсь одним из сопровождающих Single-Spa.

Мы склонны обращать внимание на наше мнение в документации о том, как реализовать связь между модулями, потому что есть много способов реализовать это и каждый приходит с плюсами / минусами. В описанной вами ситуации это звучит так, как будто вы могли бы захотеть исследовать вариант № 3 по опубликованной вами ссылке.

События пользовательского браузера

В родительском элементе вы находитесь пользовательские события в окне. API в MDN .

Быстрый пример

//  in the parent (usually called the single-spa config or root-config in the documentation)
const event = new CustomEvent("myEvent", {favoriteMovie: 'StarWars'})
window.dispatchEvent(event)
// in the child (or registeredApplication)
window.addEventListener("myEvent", myEventHandlingFunction)

function myEventHandlingFunction(e) {...}

Это, по крайней мере, должно помочь вам начать, есть и другие варианты общения, и этот конкретный подход не будет лучшим решением в каждой ситуации.

Стоит также отметить, что customEvents не работают в IE11, если вы не включите полизаполнение.

...