Как применить тумблер между светлой и темной темой в AngularDart?

Я хочу применить переключатель между темной и светлой темой в AngularDart.

app_component

<material-icon icon="brightness_2" 
               class="material-list-item-primary"
               aria-hidden="true"></material-icon>
Dark Theme
<span class="material-list-item-secondary">
<material-toggle [checked]="dark" label="Off">
</material-toggle>
</span>

app_component.dart

class LayoutComponent {
  bool dark = false;
 }

1 ответ

Я не пробовал, но я думаю, что это способ сделать это. Оберните содержимое своих приложений в компонент, отличный от корневого компонента, и используйте *ngIf включить темную или не темную версию.

Это уничтожит и воссоздает все компоненты. Поэтому сохранение статуса приложения в глобальных сервисах может быть хорошей идеей.

app_component.html

<material-toggle [checked]="dark" label="Off"></material-toggle>    
<my-app-inner *ngIf="!dark"></my-app-inner>
<my-app-inner *ngIf="dark" darkTheme></my-app-inner>

обеспечивать DarkThemeDirective указан в

directives: [DarkThemeDirective]

Вы можете поставить <material-toggle> везде в вашем приложении, вам просто нужно убедиться, что значение *ngIf обновляется соответственно.

Другие вопросы по тегам