角操作集合

时间:2018-09-06 14:32:02

标签: angular signalr

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

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

集合(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));
  });

}

数据源是eventData集合。

1 个答案:

答案 0 :(得分:0)

您还必须同时更新MatTableDataSourceEventData[];。为了展示这一点,我为您创建了一个示例StackBlitz Project

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

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

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