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 相关文章推荐
使用JS进行目录上传(相当于批量上传)
Dec 05 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
JavaScript网页定位详解
Jan 13 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
vue组件实例解析
Jan 10 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
使用vue-router设置每个页面的title方法
Feb 11 Javascript
vue-cli常用设置总结
Feb 24 Javascript
node实现基于token的身份验证
Apr 09 Javascript
Vue项目接入Paypal实现示例详解
Jun 04 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 程序授权验证开发思路
2009/07/09 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
python调用百度REST API实现语音识别
2018/08/30 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
JAVA和C++的区别
2013/10/06 面试题
餐饮投资计划书
2014/04/25 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
2015年酒店工作总结
2015/04/28 职场文书
辩护意见书
2015/06/04 职场文书
治庸问责工作总结
2015/08/11 职场文书
高一化学教学反思
2016/02/22 职场文书