javascript - Angular 2跨应用程序(根组件)通信

标签 javascript jquery angular

我正在寻找一种页面上多个根组件之间交互的方式。背景是,我正在为 CMS 开发一堆模块,这些模块应该能够共享数据、消费事件,或者在用户决定将它们添加到页面时相互了解。由于 CMS 的性质,这些组件会独立引导。

在 Angular 1 中,可以使用 JQuery 获取 Controller 类的引用:

$("#MyApplication").controller();

Angular 2 是否以某种方式提供了类似的方式甚至更好的方法来让它们相互通信?

最佳答案

您可以使用共享服务。

class SharedService {
  ...
}

var sharedService = new SharedService();

bootstrap(App1, [provide(SharedService, {useValue: sharedService})]);
bootstrap(App2, [provide(SharedService, {useValue: sharedService})]);

在您想要与其他 Angular 应用程序通信的组件中,只需注入(inject)服务

constructor(private sharedService:SharedService) {
  sharedService.someObservable.subscribe(...);
  sharedService.someObservable.emit(...);
}

关于javascript - Angular 2跨应用程序(根组件)通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35846233/

相关文章:

javascript - 在 Node.js/Gulp 中重用流管道/子管道

javascript - 在 JavaScript 中将链接附加到头部时使用方括号 [ ]

javascript - 如何确保此 ajax 调用仅在用户与其交互时发生,而不是在页面加载时发生?

Angular 7 拖放 - 动态创建拖放区

angular - 动态安装 Angular 2 指令

angular - 将 Angular 组件注入(inject) FullCalendar 事件条目

javascript - 仅当显示 :block 时才验证文本字段

python - 如何最有效、最安全地模拟 Python shell?

javascript - 在 JavaScript 中附加相同的字符串变量时如何对待第一个字符不同?

javascript - 将 Basicprimitive 与 Angularjs 一起使用错误 : jQuery(. ..).orgDiagram 不是函数