Hello, addwebsolution! Thank you for answer
I’m new with typescript and ionic, not sure if I did it properly, so I’ve added into app.module.ts:
import { RequestProvider } from '../providers/request/request';
import { HttpModule } from '@angular/http';
in imports:
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
HttpModule
],
and providers:
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
RequestProvider
]
in providers/request folder in request.ts I’ve added
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Http , Headers, RequestOptions, Response } from '@angular/http';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class RequestProvider {
hostname:string = "myhostname";
constructor(public http: HttpClient) {
console.log('Hello RequestProvider Provider');
}
get(endPoint){
let url = this.hostname + endPoint;
var promise = new Promise((resolve,reject)=>{
this.http.get(url).map((res)=> res.json())
.subscribe(data => {
resolve(data);
})
})
return promise
}
post(endPoint,data){
let url = this.hostname + endPoint;
let headers = new Headers();
headers.append('Access-Control-Allow-Origin' , '*');
headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
headers.append('Accept','application/json');
headers.append('content-type','application/json');
let options = new RequestOptions({ headers:headers});
return new Promise((resolve,reject)=>{
this.http.post(url,JSON.stringify(data), options).subscribe(res => {
resolve(res.json());
}, (err) => {
reject(err);
});
})
}
}
in this code something is wrong with two things, for json: this.http.get(url).map((res)=> res.json())
and options: this.http.post(url,JSON.stringify(data), options).subscribe(res => { resolve(res.json()); }, (err) => { reject(err); });
show in picture:
not sure what should I do in home.ts:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { RequestProvider } from '../../providers/request/request';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
postList: any;
constructor(public navCtrl: NavController, private requestProvider: RequestProvider) {
}
//...
}
to see result in home.html
<ion-content padding>
<h2>Posts</h2>
<ion-list>
<ion-item *ngFor="let post of postList">
{ { post.title } }
</ion-item>
</ion-list>
</ion-content>