Передача данных между более чем одним компонентом с использованием единой модели и ее создание? - PullRequest
0 голосов
/ 29 мая 2018

У меня есть этот сервис:

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class DataService<T> {
  private subject: BehaviorSubject<Partial<T>> = new BehaviorSubject<Partial<T>>(null);
  changeData(message: Partial<T>) {
    this.subject.next(message);
  }

  clearData() {
    this.subject.next(null);
  }

  getData(): Observable<Partial<T>> {
    return this.subject.asObservable();
  }
}

Я использую его вот так.Datepicker:

this.ds.changeData({
  dateFrom: this.dateRange.start,
   dateTo: this.dateRange.end
});

Основной компонент:

 this.ds.getData().subscribe((data: FilterQuery) => {
        console.log('Update data', data);
        this.filterModel = data;
 });

Я хотел бы добавить еще несколько компонентов, каков наилучший способ хранения данных и создания полного объекта запроса?Если у вас есть какие-либо другие предложения, я с радостью это оценю.

...