我需要一个帮助来从我的容器单个spa到加载的angular应用程序(child(进行通信。当用户点击父应用程序(spa容器(选项时,该选项应传达给子应用程序以更改模式。
这种情况不会经常发生。但无法找到从容器到加载的角度应用程序进行通信的方法。
spa本身给出了一个细节:spa沟通细节,但不清楚,也没有详细的步骤。有人帮我吗?
我是单身spa的维护者之一。
我们倾向于在文档中对如何实现模块之间的通信发表意见,因为有很多方法可以实现它,每种方法都有优缺点。在你描述的情况下,听起来你可能想从你发布的链接中探索选项#3。
自定义浏览器事件
在父对象中,可以在窗口上激发自定义事件。关于MDN的API。
快速示例
// 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) {...}
这至少应该让你开始,还有其他沟通选择,这种特殊的方法不会是所有情况下的最佳解决方案。
同样值得注意的是,除非包含polyfill,否则customEvents在IE11中不起作用。