Применение стилей к модальному NgBootstrap в Angular во время выполнения

У меня есть приложение, которое может поменять тему во время выполнения.

BaseComponent - это мой основной компонент, который добавляется в мой AppComponent и имеет свойство темы (по сути, просто класс, применяемый к одному из элементов обертки), например, так:

В base.component.html

...
<div [ngClass]="theme" class="theme-container">
    <!-- other components of application here -->
</div>
...

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

Например, скажем, у меня есть Темная тема и Светлая тема, типичный сценарий. Как я могу применить такой стиль к модальному, где его содержимое добавлено в тело моего приложения?

1 ответ

ngb-modal-window будет вставлен в <body> тег, так что вы должны добавить свой класс CSS класса к тегу тела, используя угловой renderer

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html'
})
export class AppComponent {
  theme = "my-theme";
  constructor(private renderer: Renderer2) {
    this.renderer.addClass(document.body, this.theme);
  }
}
Другие вопросы по тегам