File

src/app/todo/todo.service.ts

Index

Properties
Methods

Constructor

constructor(http: HttpClient)
Parameters :
Name Type Optional
http HttpClient No

Methods

addTodo
addTodo(todo)
Parameters :
Name Optional
todo No
Returns : void
getTodos
getTodos()
Returns : any
getTodosByFilter
getTodosByFilter()
Returns : void
getTodosByParams
getTodosByParams()
Returns : any
toggleTodo
toggleTodo(todo)
Parameters :
Name Optional
todo No
Returns : void

Properties

Private apiUrl
Default value : environment.todoApi
onTodosChangedSubject
Type : BehaviorSubject<any>
Default value : new BehaviorSubject([])
todos
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from '../../environments/environment';
import { Todo } from './todo.model';

import { BehaviorSubject } from 'rxjs';

@Injectable()
export class TodoService {
  private apiUrl = environment.todoApi;

  todos;

  onTodosChangedSubject: BehaviorSubject<any> = new BehaviorSubject([]);

  constructor(private http: HttpClient) {}

  getTodos() {
    return this.getTodosByParams();
  }

  getTodosByParams() {
    return this.http.get(this.apiUrl).subscribe(todo => {
      this.onTodosChangedSubject.next(todo);
    });
  }

  getTodosByFilter() {}

  addTodo(todo) {
    this.http.post(this.apiUrl, { ...todo }).subscribe(res => {
      this.onTodosChangedSubject.next(res);
    });
  }

  toggleTodo(todo) {}
}

result-matching ""

    No results matching ""