#angular #typescript #rxjs #rxjs-observables #agm-map
#angular #typescript #rxjs #rxjs-наблюдаемые #agm-карта
Вопрос:
Я хочу изменить цвет agm-круга, когда карта меняет свой режим на темный режим.
В файле службы у меня есть тема поведения следующим образом
private isDarkModeActiveSubject = new BehaviorSubject<boolean>(false);
readonly isDarkModeActive$ = this.isDarkModeActiveSubject.asObservable();
В моем компонентном файле в методе ngOnInit есть следующий код
this.mapToolbarService.isDarkModeActive$
.pipe(takeUntil(this.unsubscriber.done))
.subscribe((isDarkModeActive: boolean) => {
this.changeTheAgCircleColor(isDarkModeActive);
ComponentChangeUtils.detectChanges(this.changeRef);
});
а затем метод changeTheAgCircleColor
changeTheAgCircleColor(isDarkModeActive: boolean) {
if (isDarkModeActive) {
this.pickupClusterPoints.forEach((point) => {
point.fillColor = '#FFCF4D';
point.strokeColor = '#FFEB3B';
});
} else {
console.log('light mode', isDarkModeActive);
// this.pickupClusterPoints.forEach((point) => {
// point.fillColor = '#333';
// point.strokeColor = '#333';
// });
}
}
export interface PickupClusterPoint extends PositioningPoint {
strokeColor?: string;
fillColor?: string;
// some other varibles
}
HTML-файл
<ng-container *ngFor="let point of pickupClusterPoints">
<agm-circle
[strokeColor]="point.strokeColor"
[strokeWeight]="point.strokeWeight"
[fillColor]="point.fillColor"
></agm-circle>
цвет круга меняется, если активен темный режим, но когда я возвращаюсь в светлый режим, он остается прежним.
Закомментированный код в блоке else, если я его раскомментирую, ничего не работает, я имею в виду, что подписчик не работает и, следовательно, не вызывает метод. консоль.работает только журнал.