#angular #kendo-ui #rxjs #kendo-scheduler
#angular #kendo-ui #rxjs #kendo-scheduler
Вопрос:
Я пытаюсь понять пример службы редактирования (ссылка) в kendo-ui для angular для планировщика (который находится в бета-версии). Класс EditService расширяет BaseEditService.
Функция read() для editService в моем коде выглядит следующим образом:
public read(): void {
if (this.data.length) {
this.source.next(this.data);
return;
}
this.fetch().subscribe(data => {
this.data = data.map(item => this.readEvent(item));
this.source.next(this.data);
},null, null
);
}
Я не понимаю, что делает this.source.next(this.data).
Согласно base-edit.service.d.ts:
/**
* The source subject for the `events` observable.
*/
protected source: BehaviorSubject<TEvent[]>;
При более глубоком изучении BehaviorSubject (из RxJS) обнаруживается комментарий
* A variant of Subject that requires an initial value and emits its current
* value whenever it is subscribed to.
Я начинаю думать, что это.для ввода в this.source.next() необходимы данные, и причина, по которой это не выполняется в одной строке, как показано ниже
this.source.next(data.map(item => this.readEvent(item)));
это потому, что он необходим для оператора if, когда данные уже существуют.