Имитация службы Todos в Angular - PullRequest
0 голосов
/ 13 мая 2019

У меня есть следующая служба Angular 7 в приложении:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';

import { Observable } from 'rxjs';

import { Todo } from './todo';

@Injectable({
  providedIn: 'root'
})

export class TodoService {

  constructor(private httpClient: HttpClient) { }

  public get(): Observable<Todo> {
    return this.httpClient.get<Todo>(`todos`);
  }

  public create(todo) {
    const headers = new HttpHeaders({ 'Content-Type': 'application/json' });

    return this.httpClient.post(`todos`, { headers: headers });

  }

}

Я бы хотел смоделировать этот сервис с помощью списка Todos, определенного в коде.

Как я могу это сделать?

1 Ответ

1 голос
/ 13 мая 2019

Вы можете использовать RxJs BehaviorSubject для симуляции Observable данных из некоторого внешнего источника.

import { Injectable } from '@angular/core';

import { Observable, BehaviorSubject } from 'rxjs';

import { Todo } from './todo';

@Injectable({
  providedIn: 'root'
})

export class TodoService {

  todos: BehaviorSubject<Todo[]> = new BehaviorSubject([]);

  public get(): Observable<Todo[]> {
    return this.todos.asObservable();
  }

  public create(todo: Todo) {
    this.todos.next(this.todos.value.concat(todo));
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...