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 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
XML文件转化成NSData对象的方法
Aug 12 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
微信小程序  modal弹框组件详解
Oct 27 Javascript
详解打造 Vue.js 可复用组件
Mar 24 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
jQuery Dom元素操作技巧
Feb 04 jQuery
微信小程序自定义toast的实现代码
Nov 16 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
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数组编码转换示例详解
2014/03/11 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
js模块加载方式浅析
2017/08/12 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python3正则提取字符串里的中文实例
2019/01/31 Python
python3人脸识别的两种方法
2019/04/25 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
执行总经理岗位职责
2014/02/03 职场文书
2014年计生标语
2014/06/23 职场文书
加强作风建设心得体会
2014/10/22 职场文书
员工离职感谢信
2015/01/22 职场文书
太行山上观后感
2015/06/05 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
Python OpenCV形态学运算示例详解
2022/04/07 Python
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers