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 03 Javascript
javascript之大字符串的连接的StringBuffer 类
May 08 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
jQuery focus和blur事件的应用详解
Jan 26 Javascript
DOM节点深度克隆函数cloneNode()用法实例
Jan 12 Javascript
JS实现可点击展开与关闭的左侧广告代码
Sep 02 Javascript
jquery日历插件datepicker用法分析
Jan 22 Javascript
使用JQuery 加载页面时调用JS的实现方法
May 30 Javascript
详解如何使用webpack打包Vue工程
May 27 Javascript
JavaScript截屏功能的实现代码
Jul 28 Javascript
详解react使用react-bootstrap当轮子造车
Aug 15 Javascript
如何选择适合你的JavaScript框架
Nov 20 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
2014最热门的24个php类库汇总
2014/12/18 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
javascript自执行函数
2017/02/10 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
python使用电子邮件模块smtplib的方法
2016/08/28 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
社区党建工作方案
2014/06/10 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
个人借款协议书范本
2014/11/17 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL