Здравствуйте, у меня есть проект Ioni c 3, и я хочу перейти на Ioni c 5. Я знаю о компонентах, но у меня проблема с Http, который больше не поддерживается.
Раньше я вызывал функции .ts для вызова данных из API, как это
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import { AppData } from '../../providers/app-data/app-data';
@Injectable()
export class UserData {
options: any;
api_signature: string = '';
constructor(
public http: Http,
public device: Device,
public events: Events
) {
let headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
});
this.options = new RequestOptions({
headers: headers
});
}
и функционировал как
allUsers(offset: number) {
let url = this.appData.getApiUrl() + 'allUsers';
let data = this.jsonToURLEncoded({
offset:offset
});
return this.http.post(url, data, this.options);
}
Теперь я вызываю http как HttpClient вот так. Но у меня проблемы с RequestOptions, горит красный свет, ана говорит, что не могу найти модуль, который, как я знаю, больше не поддерживается
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';
import { AppData } from '../app-data/app-data';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class UserData {
options: any;
constructor(
public storage: Storage,
public appData: AppData,
public http: HttpClient,
) {
let headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
});
this.options = new RequestOptions({
headers: headers
});
}
и такая функция
allUsers(offset: number) {
const url = this.appData.getApiUrl() + 'allUsers';
const data = this.jsonToURLEncoded({
offset: offset
});
return this.http.post(url, data, this.options);
}
У меня также есть проблема с rx js и map. Вот как я вызываю функции в .ts для получения данных из api.
allUsersSet() {
this.userData.allUsers(this.offset)
.map(res => res.json())
.subscribe(data => {
if (data.success) {
const temp = data.usersFeed;
this.allUsers = temp;
}
});
}
.map перерисовывается и говорит, что не существует на Observable, я поставил
import { map } from 'rxjs/operators';
, но .map по-прежнему остается error
Я сделал это
allUsersSet() {
this.userData.allUsers(this.offset)
map((data: any) => {
if (data.success) {
const temp = data.usersFeed;
this.allUsers = temp;
}
});
}
Я не получаю сообщение об ошибке, но вызов API не отображается на вкладке Inspect / Network / XHR
Любая помощь?