ionic3+Angular4实现接口请求及本地json文件读取示例


Posted in Javascript onOctober 11, 2017

一 准备工作

首先,ionic3+Angular4的开发环境你得有,这里就不赘述。环境准备好,创建一个空白项目,模板自选。

二 实现过程

1 新建json文件和service

service记得在app.module.ts中引用

ionic3+Angular4实现接口请求及本地json文件读取示例

json和service

2 json文件格式

格式类似这样,根据实际需求决定。

[
 {
  "id":"1",
  "name":"xiehan",
  "age":"24",
  "message":"测试json文件读取"
 },
 {
  "id":"2",
  "name":"xiehan",
  "age":"24",
  "message":"测试json文件读取"
 },
 {
  "id":"3",
  "name":"xiehan",
  "age":"24",
  "message":"测试json文件读取"
 },
 {
  "id":"4",
  "name":"xiehan",
  "age":"24",
  "message":"测试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){
 }
 // 网络接口请求
 getHomeInfo(): Observable<Response> {
  return this.httpService.request('http://jsonplaceholder.typicode.com/users')
 }

 // 本地json文件请求
 getRequestContact(){
  return this.httpService.get("assets/json/message.json")
 }
}

4 数据显示

1 网络接口请求

//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 {
 // 接收数据用
 listData: Object;
 // 依赖注入
 constructor(public navCtrl: NavController,
       private ref: ChangeDetectorRef,
       private demoService: DemoService,) {
 }

 ionViewDidLoad() {
  // 网络请求
  this.getHomeInfo();
 }

 getHomeInfo(){
  this.demoService.getHomeInfo()
   .subscribe(res => {
    this.listData = res.json();
    // 数据格式请看log
    console.log("listData------->",this.listData);
    this.ref.detectChanges();
   }, error => {
    console.log(error);
   });
 }
}

 
//home.html
<ion-header>
 <ion-navbar>
  <ion-title>首页</ion-title>
 </ion-navbar>
</ion-header>

<ion-content padding>
 <ion-list *ngFor="let item of listData">
  <ion-item>
  <!--?是Angular特定语法,相当于判断数据是否存在,有则显示无则不显示-->
   {{item?.name}}
  </ion-item>
 </ion-list>
</ion-content>

效果图

ionic3+Angular4实现接口请求及本地json文件读取示例

2 本地json文件请求

service中已经写了getRequestContact()方法对本地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() {
  // 网络请求
  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>
   联系人
  </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>

效果图

ionic3+Angular4实现接口请求及本地json文件读取示例

三 总结

1.所有创建的page要在app.module.ts中引用;
2.service要在app.module.ts中引用;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery插件制作 图片走廊 gallery
Aug 17 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
JS定时关闭窗口的实例
May 22 Javascript
jquery动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
AngularJS基础学习笔记之表达式
May 10 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 Javascript
Openlayers绘制聚合标注
Sep 28 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
js实现单张图片平移切换效果
Oct 11 #Javascript
jQuery自动或手动图片切换效果
Oct 11 #jQuery
简单实现vue验证码60秒倒计时功能
Oct 11 #Javascript
mui框架移动开发初体验详解
Oct 11 #Javascript
Scala解析Json字符串的实例详解
Oct 11 #Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 #jQuery
详解vue mint-ui源码解析之loadmore组件
Oct 11 #Javascript
You might like
php随机输出名人名言的代码
2012/10/07 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
JavaScript模拟push
2016/03/06 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
java程序员面试交流
2012/11/29 面试题
植树节标语
2014/06/27 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
护理专业自荐信范文
2015/03/06 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
房产证明范本
2015/06/19 职场文书
文明医院的标语集锦!
2019/07/24 职场文书