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 相关文章推荐
XP折叠菜单&amp;仿QQ2006菜单
Dec 16 Javascript
来自chinaz的ajax获取评论代码
May 03 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
jquery each()源代码
Feb 14 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
如何将网页表格内容导入excel
Feb 18 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
JavaScript数组方法总结分析
May 06 Javascript
js脚本编写简单刷票投票系统
Jun 27 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
JavaScript代码简化技巧实例解析
Sep 09 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 如何利用phpexcel导入数据库
2013/08/24 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
浅析Python编写函数装饰器
2016/03/18 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Python列表推导式实现代码实例
2020/09/09 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
幼师自我鉴定范文
2013/10/01 职场文书
大学生求职中的自我评价
2013/10/01 职场文书
学年末自我鉴定
2014/01/21 职场文书
给领导的检讨书
2014/02/16 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
天那边观后感
2015/06/09 职场文书
校运会班级霸气口号
2015/12/24 职场文书
人生感悟经典句子
2019/08/20 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis