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显示选择目录对话框的代码
Nov 10 Javascript
Javascript合并表格中具有相同内容单元格示例
Aug 11 Javascript
DOM基础教程之事件对象
Jan 20 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
jquery实现先淡出再折叠收起的动画效果
Aug 07 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
Javascript获取图片原始宽度和高度的方法详解
Sep 20 Javascript
原生js编写2048小游戏
Mar 17 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
Dec 21 Javascript
React学习之JSX与react事件实例分析
Jan 06 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/07/29 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
JS去掉字符串中所有的逗号
2017/10/18 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
铣床操作工岗位职责
2014/06/13 职场文书
科学发展观演讲稿
2014/09/11 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python