在 Angular 2 中与多个组件共享 websocket 数据

Share websocket data with multiple components in Angular 2

我有 1 个主要成分。在此组件内部,我使用 WebSockets 从服务器接收数据。我收到一个包含一系列字段的对象。例如,字段数可以从 0 到 10。每次我收到一个对象时,我都会使用 forEach() 来获取所有字段。对于每个字段,我需要初始化一个组件,如下所示:

self.dcl.loadIntoLocation(StreamComponent, self.elementRef, 'stream');

如果对象当前字段的组件副本已经存在,我需要用视图中收到的新数据更新它。我的主要问题是我不知道如何将数据从 WebSockets 传递到创建的组件。我可以创建和初始化它,但我从不介意如何将数据传递给它。有什么想法吗?

您可以尝试利用方法返回的承诺:

self.dcl.loadIntoLocation(
  StreamComponent, self.elementRef, 'stream').then((compRef:ComponentRef) => {
    compRef.instance.someAttr = something;
});

此承诺允许您获取新创建的组件的实例并在其属性中设置数据(例如,网络套接字)。