【发布时间】:2020-08-07 03:41:36
【问题描述】:
您好,我有一个 Ionic 3 项目,我想迁移到 Ionic 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 问题被红灯化了 ana 说找不到我知道不再支持的模块
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);
}
我也有 rxjs 和 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 仍然是一个错误
我这样做了
allUsersSet() {
this.userData.allUsers(this.offset)
map((data: any) => {
if (data.success) {
const temp = data.usersFeed;
this.allUsers = temp;
}
});
}
我没有收到错误,但 api 调用未显示在 Inspect/Network/XHR 选项卡中
有什么帮助吗?
【问题讨论】:
-
我建议您阅读这些文档:angular.io/guide/observables
标签: angular ionic-framework ionic5