невозможно изменить тему ag-grid в angular

#angular #ag-grid #ag-grid-angular

#angular #ag-grid #ag-grid-angular

Вопрос:

У меня есть приложение angular, которое использует ag-grid (angular 10 и angular material). Я импортировал как темную, так и светлую тему, которую я пытаюсь изменить динамически. мой

style.scss

 @import "../node_modules/ag-grid-community/dist/styles/ag-grid.css";
@import "../node_modules/ag-grid-community/dist/styles/ag-theme-alpine.css";
@import "../node_modules/ag-grid-community/dist/styles/ag-theme-alpine-dark.css";
  

компонент с сеткой (app.component.html )

 <ag-grid-angular
  style="width: 100%; height: 100%;"
  [ngClass]="!isDarkTheme ? 'ag-theme-alpine': 'ag-theme-alpine-dark'"
  [rowData]="rowData"
  [columnDefs]="columnDefs"
>
</ag-grid-angular>
  

component.ts

 export class AppComponent implements OnInit {
  isDarkTheme: Observable<boolean>;

  constructor(private themeService: ThemeService) { }

  ngOnInit(): void {
    this.isDarkTheme = this.themeService.isDarkTheme;
  }
  

значение isDarkTheme меняется правильно, однако angular применяет только темную тему в обоих случаях. Как мне применить как темную, так и светлую тему в моем приложении.

Ответ №1:

Вам нужно использовать async канал. Обновите свой код [ngClass] строкой до этого:

 [ngClass]="!(isDarkTheme | async) ? 'ag-theme-alpine': 'ag-theme-alpine-dark'"
  

Комментарии:

1. @Ashish Нет проблем. Рад помочь.