У меня есть проект Angular 7 с Angular Material. Я использую одну из стандартных тем. Я пытаюсь контролировать индикатор выполнения, чтобы иметь возможность изменить его цвет с красного на зеленый в зависимости от его значения.
Единственный способ контролировать его цвет - это передать один из primary
/ accent
/ warn
.
Однако я не хочу вмешиваться в мою основную тему. Я подумал, может быть, я мог бы подойти к этому, создав собственную тему, которая расширяет ту, которую я сейчас использую, например, :
@import '~@angular/material/theming';
@include mat-core();
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
$candy-app-warn: mat-palette($mat-red);
$candy-app-green: mat-palette($mat-green); // MY CUSTOM NAMED THEME ATTRIBUTE
$candy-app-red: mat-palette($mat-red); // MY CUSTOM NAMED THEME ATTRIBUTE
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent, $candy-app-warn);
// that you are using.
@include angular-material-theme($candy-app-theme);
и затем управление моим компонентом следующим образом:
<mat-progress-bar mode="determinate" value="40" color="green"></mat-progress-bar>
Я ценю, что индикатор выполнения, похоже, не поддерживает какие-либо другие псевдонимы цвета, поэтому не уверен, что смогу заставить этот подход работать> Любые идеи о том, как я мог бы достичь этого результата. я хочу изменить цвет индикатора выполнения, не нарушая работу остальной части моего приложения, которая опирается на существующую тему.