2017-02-16 5 views
0

Я изо всех сил пытаюсь обновить ag-сетку по подписке наблюдаемого.Обновить ag-grid on Observable подписаться

У меня есть следующий код, который хорошо работает.

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

Но так как я пытаюсь поставить раскрывающийся в колонках серебряно-сетки, я хотел столбец конфигурации должен быть создан как только мы получаем данные. Поэтому я изменил код следующим образом:

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) 
     ); 

Но он ничего не показывает в сетке. Может кто-нибудь помочь?

+0

Вы можете проверить, есть ли способ рисования()? поэтому somehting вроде this.gridOptions.draw() –

+0

Нет, нет метода draw(). В идеале this.gridOptions.api.refreshView() должен заставить сетку перерисовать себя. –

ответ

0

gridOptions.colDefs и gridOptions.rowData являются свойствами «read once» - они читаются в инициализации Grid и не просматриваются снова.

Чтобы выполнить динамическую настройку после строки или столбцов, вам необходимо использовать API.

Изменить

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

Для этого:

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

И он должен работать, как ожидалось. Обратите внимание, что если вы используете API в соответствии с вышеизложенным, вам не нужно будет вызывать refreshView - описанные выше методы сделают это для вас.

+0

Он работал как магия :) Спасибо .. –

Смежные вопросы