У меня довольно простой слайд-переключатель. Я хочу выполнить HTTP-вызов после переключения слайдера, и в случае сбоя моего HTTP-вызова верните слайдер обратно к исходному значению. Я сделал это следующим образом:
import {Component} from '@angular/core';
import { MatSlideToggleChange } from '@angular/material';
import { FakeService } from './fake.service';
@Component({
selector: 'slide-toggle-configurable-example',
templateUrl: 'slide-toggle-configurable-example.html'
})
export class SlideToggleConfigurableExample {
isChecked = false;
isCheckedInit = false;
constructor(private readonly fakeService: FakeService) {}
onChange(value: MatSlideToggleChange) {
const { checked } = value;
this.fakeService.throwUp(checked).subscribe(
() => {},
() => {
this.isChecked = this.isCheckedInit;
}
);
}
}
Однако это не работает. Мой шаблон выглядит так:
<mat-slide-toggle
(change)="onChange($event)"
[checked]="isChecked">
Slide me!
</mat-slide-toggle>
<section>
{{ isChecked }}
</section>
Но значение isChecked
никогда не изменяется и всегда отображается как false
.
Кажется, что ничего, что я делаю с isChecked
, не меняет своего значения.
Вот Stackblitz для отображения текущего поведения.
Что я должен изменить, чтобы получить желаемое поведение?