Использование Angular 7 У меня есть следующий сервис ( Пример StackBlitz ):
@Injectable({
providedIn: 'root'
})
export class TodoService {
todos: BehaviorSubject<Todo[]> = new BehaviorSubject([
{ id: 1, title: "Buy book", content: "Buy book about angular" },
{ id: 2, title: "Send invoice", content: "Send invoice to client A" }
]);
public get(): Observable<Todo[]> {
return this.todos.asObservable();
}
public create(todo: Todo) {
this.todos.next(this.todos.value.concat(todo));
}
}
Этот сервис используется несколькими компонентами:
- TodoCreateComponent> Создает новые задачи
- TodoListComponent> Показывает список задач
- TodoRecentComponent> Показывает последние задачи
Каждый компонент имеет свою собственную модель, сопоставленную с Todo
в егопо-своему ...
Некоторые модели используют множество Todo
свойств (Title
, Content
), другие только одно (Title
) и т. д.
На моем Пример StackBlitz новый Todo
автоматически добавляется в список задач:
Цель
Теперь мне нужно заменить локальные данные данными, взятымииз API:
public get(): Observable<Todo[]> {
return this.httpClient.get<Todo>(`todos`);
}
public create(todo: Todo) {
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
this.httpClient.post(`todos`, todo, { headers: headers });
}
Вопрос
Вопрос в том, как интегрировать HttpClient, чтобы получить все в синхронизации:
Так что, когда новый Todo
создан список Todos
должен быть обновлен ...