代码之家  ›  专栏  ›  技术社区  ›  Abel Valdez

更新保留筛选和排序的数据表

  •  0
  • Abel Valdez  · 技术社区  · 6 年前

    我在用 ng2-smart-table 我正在更新信息 setInterval 每2分钟运行一次,我会收到新信息。

    这个 问题 当我过滤、排序或使用数据表的分页时,会触发间隔,并且数据表返回到默认筛选和排序等。

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

    HTML

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

    我使用一个具有可观察模式的storedata来检索我认为与显示此代码无关的信息

    组件

    ...
    pendingAlerts: Pending[] =[];
    ...
    next = (data: Pending[]) => {
        console.log("Receiving info from observer"+ data.length);
        this.pendingAlerts = data;   
    
      }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Abel Valdez    6 年前

    答案是用 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);   
    
      }