在Observable订阅上刷新ag-grid

时间:2017-02-16 10:39:38

标签: angular rxjs ag-grid

我正在努力在订阅可观察量时刷新ag-grid。

我有以下一段效果很好的代码。

     this.marketConfigs = this._regionProductConfigService.getMarketConfig();              
           this.gridOptions.columnDefs = this.createColumnDefs();
            this.gridOptions.rowData = this.marketConfigs;

但是因为我试图在ag-grid的列中放下一个下拉列表,所以我希望在接收数据后创建列配置。所以我将代码更改为以下内容:

this._refDataService.getAllCurrencies().subscribe(
            (data: ICurrency[]) => {
                this.financingCurrencies = data;               
                this.marketConfigs = this._regionProductConfigService.getMarketConfig();              
                this.gridOptions.columnDefs = this.createColumnDefs();
               this.gridOptions.rowData = this.marketConfigs;                
                this.gridOptions.enableColResize = true;
                this.gridOptions.api.refreshView();
            },
            err => console.log(err)
        );  

但它并没有在网格中显示任何东西。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

gridOptions.colDefs和gridOptions.rowData是“一次读取”属性 - 它们是在网格初始化时读取的,而不是再次查看。

要对行或列进行动态的post-init设置,您需要使用API​​。

更改

this.gridOptions.columnDefs = this.createColumnDefs(); 
this.gridOptions.rowData = this.marketConfigs;     

对此:

this.gridOptions.api.setColumnDefs(this.createColumnDefs()); 
this.gridOptions.setRowData(this.marketConfigs);

它应该按预期工作。请注意,如果按照上述方法使用API​​,则无需调用refreshView - 上述方法将为您完成。