首页 > 解决方案 > 角度操作集合

问题描述

我是角度的新手。我的背景是 .NET (c#, wpf)。

我想要实现的是拥有一个绑定到表(数据网格)的集合。

集合 (EventData[]) 将由 http get 请求 (getEvents) 填充。

现在正在工作。

接下来,我使用 SignalR 库获取服务器推送的新 EventData 对象。

因此,如果接收到新的 EventData,则该数据应添加到现有集合中并反映到视图中。

在 c# 中,这将是一个简单的“添加”,例如“myEvents.Add(receivedEvent)”。

这是我的代码:

dataSource: EventData[];

ngOnInit() {

  this._hubconnection = new signalR.HubConnectionBuilder()
    .configureLogging(signalR.LogLevel.Trace)
    .withUrl('https://localhost:44373/notify')
    .build();

  this._hubconnection
    .start()
    .then(() => console.log('Connection Started'))
    .catch(err => console.log('Error while establishing connection'));

  this._hubconnection.on('BroadcastMessage', (data: EventData) => {
    console.log(data);
    this.dataSource.push(data);
    // this.dataSource.subscribe(v => v.push(data));
  });

}

datasource 是 eventData 集合。

标签: angularsignalr

解决方案


您还必须MatTableDataSourceEventData[];. 为了展示这一点,我为您创建了一个示例StackBlitz 项目

如您所见,顶部有一个按钮,上面写着Add Item。单击该按钮会将新项目添加到表中。

更新用户列表后,我将表数据源设置为一个新列表,如下所示:

this.dataSource = new MatTableDataSource(this.users);

推荐阅读