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 相关文章推荐
WEB 浏览器兼容 推荐收藏
May 14 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
js最简单的拖拽效果实现代码
Sep 24 Javascript
Jquery实现仿京东商城省市联动菜单
Nov 19 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
手把手带你搭建一个node cli的方法示例
Aug 07 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
Nov 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中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
会计电算化专业毕业生自荐信
2013/12/20 职场文书
银行学习十八大感想
2014/01/11 职场文书
商场端午节活动方案
2014/01/29 职场文书
记帐员岗位责任制
2014/02/08 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫