更新数据表保持过滤器并排序

时间:2018-05-28 23:44:53

标签: angular typescript

我正在使用ng2-smart-table我每隔2分钟用setInterval函数更新信息,我会收到新信息。

问题是我在过滤,排序或使用数据表的分页时触发间隔,数据表返回默认过滤器和排序等。

我正在寻找更新pendingAlerts的方法,但不会影响数据表中的当前过滤器或排序。我正在考虑直接影响数组的每个实例,但我不知道它是否是一个好方法。

HTML

<ng2-smart-table (userRowSelect)="onRowSelected($event)" [settings]="settings" [source]="pendingAlerts"></ng2-smart-table>

我正在使用带有可观察模式的存储数据来检索我认为与显示此代码无关的信息

组件

...
pendingAlerts: Pending[] =[];
...
next = (data: Pending[]) => {
    console.log("Receiving info from observer"+ data.length);
    this.pendingAlerts = data;   

  }

1 个答案:

答案 0 :(得分:0)

答案是使用LocalDataSource类和load函数来加载数据。并且您将保留过滤器和排序配置。

<强>组件

pendingAlerts: LocalDataSource;
count: number = 0;
ngOnInit() {    
  this.pendingAlerts = new LocalDataSource([]); 
  this.pendingAlerts.onChanged().subscribe(res =>{
      this.count = this.pendingAlerts.count();
  });  
}

  next = (data: Pending[]) => {
    console.log("Receiving info from observer"+ data.length);
    this.pendingAlerts.load(data);   

  }