Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component, Input, OnInit, NgZone } from '@angular/core';
- import { Todo } from '../todo.model';
- import { TodoService } from '../../todo.service';
- @Component({
- selector: 'app-todo-list',
- templateUrl: './todo-list.component.html',
- styleUrls: ['./todo-list.component.scss'],
- providers: [TodoService]
- })
- export class TodoListComponent implements OnInit {
- @Input() todos: Todo[] = [];
- constructor(private _todoService: TodoService, private zone: NgZone){}
- getTodos() {
- console.log('todo list - get todos');
- this._todoService.getTodos()
- .subscribe(resTodoData => {
- this.zone.run(() => {
- this.todos = resTodoData;
- });
- });
- }
- ngOnInit() {
- console.log('todo list - init');
- this.getTodos();
- }
- }
- import { Injectable, NgZone } from '@angular/core';
- import { Http, Response, Headers, RequestOptions } from
- '@angular/http';
- import { map } from 'rxjs/operators';
- import { Todo } from './todos/todo.model';
- @Injectable({
- providedIn: 'root'
- })
- export class TodoService {
- // these were configured in express server
- private _getUrl = "/api/todos";
- private _postUrl = "/api/todo";
- constructor(private _http: Http, private zone: NgZone) { }
- getTodos() {
- let json = this._http.get(this._getUrl)
- .pipe(map((response: Response) => response.json()));
- return json;
- }
- addTodo(todo: Todo) {
- let headers = new Headers({ 'Content-Type': 'application/json'
- });
- let options = new RequestOptions({ headers: headers });
- return this._http.post(this._postUrl, JSON.stringify(todo),
- options)
- .pipe(map((response: Response) => response.json()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement