摘要:鏈接教程一安裝和配置教程二登錄頁制作教程三設(shè)置頁制作教程四安卓硬件返回鍵處理教程五基本的網(wǎng)絡(luò)請求這是最后一節(jié),本節(jié)主要用最簡單網(wǎng)絡(luò)請求和基本的內(nèi)置指令做一個(gè)演示。接收數(shù)據(jù)用依賴注入網(wǎng)絡(luò)請求會(huì)返回一個(gè)對象。
鏈接:
ionic3教程(一)安裝和配置
ionic3教程(二)登錄頁制作
ionic3教程(三)設(shè)置頁制作
ionic3教程(四)安卓硬件返回鍵處理
ionic3 教程(五)基本的網(wǎng)絡(luò)請求
這是最后一節(jié),本節(jié)主要用最簡單網(wǎng)絡(luò)請求和基本的內(nèi)置指令做一個(gè)演示。
對 Angular 的基本架構(gòu)不熟悉的請點(diǎn)Angular 4.0 架構(gòu)詳解
對 Angular 的內(nèi)置指令不熟悉的請點(diǎn)Angular 4.0 內(nèi)置指令全攻略
前言通常我們希望在 HTTP 請求的時(shí)候,頁面不會(huì)失去響應(yīng),所以我們的 HTTP 請求是異步的。
JavaScript 中,通常用 3 種方式處理異步代碼。
回調(diào)(callback)
承諾(promise)
可觀察對象(observable)
promise 和 observable 主要三個(gè)主要不同:
observable 可以中途取消,promise 發(fā)出就不行
observable 可以持續(xù)發(fā)射很多值,而 promise 只能發(fā)射一個(gè)值就結(jié)束了
observable 提供了更多的工具函數(shù),最常用的是 filter 等
想更多了解 promise 的請看
《JavaScript Promise迷你書》
想更多了解 rxjs(observable) 的請看
《rxjs中文教程》
在 Angular 中,處理異步代碼的最佳方式就是使用可觀察對象,所以接下來會(huì)用到
app.module.ts導(dǎo)入 Angular 的 HttpModule。
import { HttpModule } from "@angular/http"; //然后在 imports 中插入 HttpModule 即可測試用接口
本來找了一些別的接口作為測試,發(fā)現(xiàn)不會(huì)顯示數(shù)據(jù),打開 Chrome 測試了一下發(fā)現(xiàn)有跨域問題。
XMLHttpRequest cannot load
所以這里給大家推薦個(gè)網(wǎng)站,我們就用他來進(jìn)行測試。
http://jsonplaceholder.typico...
拖到下面的 Resources 可以看到圖片。從圖中可以看出接口種類還是比較豐富的,我們選擇帶圖片的 /photos 進(jìn)行測試。
home.tsimport { Http, Response } from "@angular/http"; @Component({ selector: "page-home", templateUrl: "home.html" }) export class HomePage { // 接收數(shù)據(jù)用 listData: Object; // 依賴注入 constructor(public navCtrl: NavController, private http: Http) { } ionViewDidLoad() { // 網(wǎng)絡(luò)請求 this.http.request("http://jsonplaceholder.typicode.com/photos") .subscribe((res: Response) => { this.listData = res.json(); }); }
http.request 會(huì)返回一個(gè) Observable 對象。我們可以使用 subscribe 訂閱變化。
當(dāng) http.request 從服務(wù)器返回一個(gè)流時(shí),它就會(huì)發(fā)出一個(gè) Response 對象。我們用 json 方法提取出響應(yīng)體解析成一個(gè) Object,最后將它賦值給 this.listData。
home.html首頁 {{item?.title}}
這里使用了一個(gè) ngFor 遍歷了 listData,生成了一個(gè)列表數(shù)據(jù)。還有一點(diǎn)要提一下,這個(gè) item?.title 是 Angular 的一種語法,如果對象為空就不會(huì)取值,可以防止報(bào)錯(cuò)。
最后效果如圖所示
再補(bǔ)上一個(gè) 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) });
自己動(dòng)手試一試吧。這個(gè)入門系列結(jié)束之后,應(yīng)該會(huì)去找一些模塊進(jìn)行深入點(diǎn)的展開。
Demo下載地址
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84817.html
摘要:鏈接教程一安裝和配置教程二登錄頁制作教程三設(shè)置頁制作教程四安卓硬件返回鍵處理教程五基本的網(wǎng)絡(luò)請求這是最后一節(jié),本節(jié)主要用最簡單網(wǎng)絡(luò)請求和基本的內(nèi)置指令做一個(gè)演示。接收數(shù)據(jù)用依賴注入網(wǎng)絡(luò)請求會(huì)返回一個(gè)對象。 showImg(https://segmentfault.com/img/remote/1460000010805290); 鏈接: ionic3教程(一)安裝和配置 ionic...
摘要:本文是響應(yīng)式編程第四章構(gòu)建完整的應(yīng)用程序這篇文章的學(xué)習(xí)筆記。涉及的運(yùn)算符每隔指定時(shí)間將流中的數(shù)據(jù)以數(shù)組形式推送出去。中提供了一種叫做異步管道的模板語法,可以直接在的微語法中使用可觀測對象示例五一點(diǎn)建議一定要好好讀官方文檔。 本文是【Rxjs 響應(yīng)式編程-第四章 構(gòu)建完整的Web應(yīng)用程序】這篇文章的學(xué)習(xí)筆記。示例代碼托管在:http://www.github.com/dashnoword...
摘要:的數(shù)據(jù)強(qiáng)制刷新由于的數(shù)據(jù)綁定與更新策略,有時(shí)取回?cái)?shù)據(jù)時(shí)數(shù)據(jù)并不能引起頁面的變更,這時(shí)候就需要強(qiáng)制刷新頁面綁定的數(shù)據(jù)了。這次重構(gòu)差不多就用了四天的時(shí)間,寫了個(gè)個(gè)個(gè),按時(shí)交活兒希望本文可以在小應(yīng)用的快速構(gòu)建上給大家一個(gè)參考 作者:李宜棟 ??【 玩轉(zhuǎn) LeanCloud 】開發(fā)者經(jīng)驗(yàn)分享: 學(xué)校有一個(gè)高考志愿填報(bào)的應(yīng)用需要重構(gòu),之前的實(shí)現(xiàn)是通過構(gòu)建 Laravel RESTful API ...
閱讀 2529·2023-04-25 14:54
閱讀 599·2021-11-24 09:39
閱讀 1808·2021-10-26 09:51
閱讀 3853·2021-08-21 14:10
閱讀 3483·2021-08-19 11:13
閱讀 2694·2019-08-30 14:23
閱讀 1808·2019-08-29 16:28
閱讀 3356·2019-08-23 13:45