В этом уроке меня просят сопоставить с JSON, я прочитал, что Angular 5 не нужно сопоставлять с JSON. Не могу получить эту работу.
GitHub <- Файлы проекта </p>
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Observer } from 'rxjs/Observer';
import { Observable } from 'rxjs/Observable';
import { Post } from '../../models/posts.inteface';
import { DataProvider } from '../../providers/data/data';
@IonicPage()
@Component({
selector: 'page-posts',
templateUrl: 'posts.html',
})
export class PostsPage {
posts: Observable<Array<Post>>;
constructor(private data: DataProvider,
public navCtrl: NavController, public navParams: NavParams) {
}
getPosts() {
this.posts = this.data.getPosts(); // Error
}
}
Учебник просит меня написать так.
Это файл провайдера
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/take';
import 'rxjs/add/operator/map';
/*
Generated class for the DataProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class DataProvider {
rootUrl : string = 'https://jsonplaceholder.typicode.com'
posts:string ='posts';
constructor(public http: HttpClient) {
console.log('Hello DataProvider Provider');
}
getPosts(){
this.http.get(`${this.rootUrl}/${this.posts}`).map(res=>res).take(1);
}
}
Обновлено, как сказал @Prasheel, ошибка по-прежнему