Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. import { Component, Input, OnInit, NgZone } from '@angular/core';
  2. import { Todo } from '../todo.model';
  3. import { TodoService } from '../../todo.service';
  4.  
  5. @Component({
  6. selector: 'app-todo-list',
  7. templateUrl: './todo-list.component.html',
  8. styleUrls: ['./todo-list.component.scss'],
  9. providers: [TodoService]
  10. })
  11. export class TodoListComponent implements OnInit {
  12.  
  13. @Input() todos: Todo[] = [];
  14.  
  15. constructor(private _todoService: TodoService, private zone: NgZone){}
  16.  
  17. getTodos() {
  18. console.log('todo list - get todos');
  19. this._todoService.getTodos()
  20. .subscribe(resTodoData => {
  21. this.zone.run(() => {
  22. this.todos = resTodoData;
  23. });
  24. });
  25. }
  26.  
  27. ngOnInit() {
  28. console.log('todo list - init');
  29. this.getTodos();
  30. }
  31. }
  32.  
  33. import { Injectable, NgZone } from '@angular/core';
  34. import { Http, Response, Headers, RequestOptions } from
  35. '@angular/http';
  36.  
  37. import { map } from 'rxjs/operators';
  38. import { Todo } from './todos/todo.model';
  39.  
  40. @Injectable({
  41. providedIn: 'root'
  42. })
  43. export class TodoService {
  44.  
  45. // these were configured in express server
  46. private _getUrl = "/api/todos";
  47. private _postUrl = "/api/todo";
  48.  
  49. constructor(private _http: Http, private zone: NgZone) { }
  50.  
  51. getTodos() {
  52.  
  53. let json = this._http.get(this._getUrl)
  54. .pipe(map((response: Response) => response.json()));
  55. return json;
  56. }
  57.  
  58. addTodo(todo: Todo) {
  59. let headers = new Headers({ 'Content-Type': 'application/json'
  60. });
  61. let options = new RequestOptions({ headers: headers });
  62. return this._http.post(this._postUrl, JSON.stringify(todo),
  63. options)
  64. .pipe(map((response: Response) => response.json()));
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement