在 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;
});
此承诺允许您获取新创建的组件的实例并在其属性中设置数据(例如,网络套接字)。
我有 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;
});
此承诺允许您获取新创建的组件的实例并在其属性中设置数据(例如,网络套接字)。