ionic3+Angular4實(shí)現(xiàn)接口請(qǐng)求及本地json文件讀取示例
一 準(zhǔn)備工作
首先,ionic3+Angular4的開(kāi)發(fā)環(huán)境你得有,這里就不贅述。環(huán)境準(zhǔn)備好,創(chuàng)建一個(gè)空白項(xiàng)目,模板自選。
二 實(shí)現(xiàn)過(guò)程
1 新建json文件和service
service記得在app.module.ts中引用

json和service
2 json文件格式
格式類(lèi)似這樣,根據(jù)實(shí)際需求決定。
[
{
"id":"1",
"name":"xiehan",
"age":"24",
"message":"測(cè)試json文件讀取"
},
{
"id":"2",
"name":"xiehan",
"age":"24",
"message":"測(cè)試json文件讀取"
},
{
"id":"3",
"name":"xiehan",
"age":"24",
"message":"測(cè)試json文件讀取"
},
{
"id":"4",
"name":"xiehan",
"age":"24",
"message":"測(cè)試json文件讀取"
}
]
3 service
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {Http, Response} from '@angular/http';
import "rxjs/add/operator/map";
@Injectable()
export class DemoService {
constructor(private httpService: Http){
}
// 網(wǎng)絡(luò)接口請(qǐng)求
getHomeInfo(): Observable<Response> {
return this.httpService.request('http://jsonplaceholder.typicode.com/users')
}
// 本地json文件請(qǐng)求
getRequestContact(){
return this.httpService.get("assets/json/message.json")
}
}
4 數(shù)據(jù)顯示
1 網(wǎng)絡(luò)接口請(qǐng)求
//home.ts
import {ChangeDetectorRef, Component} from '@angular/core';
import { NavController } from 'ionic-angular';
import {DemoService} from "../../services/demo.service";
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
// 接收數(shù)據(jù)用
listData: Object;
// 依賴(lài)注入
constructor(public navCtrl: NavController,
private ref: ChangeDetectorRef,
private demoService: DemoService,) {
}
ionViewDidLoad() {
// 網(wǎng)絡(luò)請(qǐng)求
this.getHomeInfo();
}
getHomeInfo(){
this.demoService.getHomeInfo()
.subscribe(res => {
this.listData = res.json();
// 數(shù)據(jù)格式請(qǐng)看log
console.log("listData------->",this.listData);
this.ref.detectChanges();
}, error => {
console.log(error);
});
}
}
//home.html
<ion-header>
<ion-navbar>
<ion-title>首頁(yè)</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list *ngFor="let item of listData">
<ion-item>
<!--?是Angular特定語(yǔ)法,相當(dāng)于判斷數(shù)據(jù)是否存在,有則顯示無(wú)則不顯示-->
{{item?.name}}
</ion-item>
</ion-list>
</ion-content>
效果圖

2 本地json文件請(qǐng)求
service中已經(jīng)寫(xiě)了getRequestContact()方法對(duì)本地json文件讀取。
//contact.ts
import {ChangeDetectorRef, Component} from '@angular/core';
import { NavController } from 'ionic-angular';
import {DemoService} from "../../services/demo.service";
@Component({
selector: 'page-contact',
templateUrl: 'contact.html'
})
export class ContactPage {
contactInfo=[];
constructor(public navCtrl: NavController,
private demoService: DemoService,
private ref: ChangeDetectorRef,) {
}
ionViewDidLoad() {
// 網(wǎng)絡(luò)請(qǐng)求
this.getRequestContact();
}
getRequestContact(){
this.demoService.getRequestContact()
.subscribe(res => {
this.contactInfo = res.json();
console.log("contactInfo------->",this.contactInfo);
this.ref.detectChanges();
}, error => {
console.log(error);
});
}
}
// contact.html
<ion-header>
<ion-navbar>
<ion-title>
聯(lián)系人
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item *ngFor="let item of contactInfo">
<div style="display: flex;flex-direction: column;">
<span>姓名:{{item?.name}}</span>
<span>年齡:{{item?.age}}</span>
<span>信息:{{item?.message}}</span>
</div>
</ion-item>
</ion-list>
</ion-content>
效果圖

三 總結(jié)
1.所有創(chuàng)建的page要在app.module.ts中引用;
2.service要在app.module.ts中引用;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
AngularJs Injecting Services Into Controllers詳解
本文主要介紹AngularJs Injecting Services Into Controllers的知識(shí),這里整理了一下相關(guān)資料,及示例代碼,幫助大家學(xué)習(xí)和理解,有興趣的小伙伴可以參考下2016-09-09
AngularJS 2.0入門(mén)權(quán)威指南
這篇文章主要介紹了AngularJS 2.0入門(mén)權(quán)威指南的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
Angular.JS實(shí)現(xiàn)無(wú)限級(jí)的聯(lián)動(dòng)菜單(使用demo)
這篇文章主要介紹了Angular.JS中實(shí)現(xiàn)無(wú)限級(jí)聯(lián)動(dòng)菜單的使用示例,本文是在之前的一篇文章的基礎(chǔ)上進(jìn)行的幾個(gè)demo分享,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02
Angular使用ControlValueAccessor創(chuàng)建自定義表單控件
這篇文章主要介紹了Angular使用ControlValueAccessor創(chuàng)建自定義表單控件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
Angular HMR(熱模塊替換)功能實(shí)現(xiàn)方法
本篇文章主要介紹了Angular HMR(熱模塊替換)功能實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04

