ionic请求php,ionic3 教程(五)基本的网络请求

1460000010805290

这是最后一节,本节主要用最简单网络请求和基本的内置指令做一个演示。

对 Angular 的基本架构不熟悉的请点Angular 4.0 架构详解

对 Angular 的内置指令不熟悉的请点Angular 4.0 内置指令全攻略

前言

通常我们希望在 HTTP 请求的时候,页面不会失去响应,所以我们的 HTTP 请求是异步的。

JavaScript 中,通常用 3 种方式处理异步代码。

回调(callback)

承诺(promise)

可观察对象(observable)

promise 和 observable 主要三个主要不同:

observable 可以中途取消,promise 发出就不行

observable 可以持续发射很多值,而 promise 只能发射一个值就结束了

observable 提供了更多的工具函数,最常用的是 filter 等

想更多了解 rxjs(observable) 的请看

《rxjs中文教程》

在 Angular 中,处理异步代码的最佳方式就是使用可观察对象,所以接下来会用到

app.module.ts

导入 Angular 的 HttpModule。

import { HttpModule } from '@angular/http';

//然后在 imports 中插入 HttpModule 即可

测试用接口

本来找了一些别的接口作为测试,发现不会显示数据,打开 Chrome 测试了一下发现有跨域问题。

XMLHttpRequest cannot load

拖到下面的 Resources 可以看到图片。从图中可以看出接口种类还是比较丰富的,我们选择带图片的 /photos 进行测试。

1460000010805291

home.ts

import { Http, Response } from '@angular/http';

@Component({

selector: 'page-home',

templateUrl: 'home.html'

})

export class HomePage {

// 接收数据用

listData: Object;

// 依赖注入

constructor(public navCtrl: NavController, private http: Http) {

}

ionViewDidLoad() {

// 网络请求

this.http.request('http://jsonplaceholder.typicode.com/photos')

.subscribe((res: Response) => {

this.listData = res.json();

});

}

http.request 会返回一个 Observable 对象。我们可以使用 subscribe 订阅变化。

当 http.request 从服务器返回一个流时,它就会发出一个 Response 对象。我们用 json 方法提取出响应体解析成一个 Object,最后将它赋值给 this.listData。

home.html

首页

{{item?.title}}

这里使用了一个 ngFor 遍历了 listData,生成了一个列表数据。还有一点要提一下,这个 item?.title 是 Angular 的一种语法,如果对象为空就不会取值,可以防止报错。

最后效果如图所示

1460000010805292

再补上一个 Promise 的写法

import 'rxjs/add/operator/toPromise';

this.http.request('http://jsonplaceholder.typicode.com/photos')

.toPromise()

.then(res => { this.listData = res.json(); })

.catch(err => { console.error(err) });

自己动手试一试吧。这个入门系列结束之后,应该会去找一些模块进行深入点的展开。

Demo下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值