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开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
使用jquery为table动态添加行的实现代码
Mar 30 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
jQuery与Ajax以及序列化
Feb 01 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
Angular X中使用ngrx的方法详解(附源码)
Jul 10 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
Js数组扁平化实现方法代码总汇
Nov 11 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
一个改进的UBB类
2006/10/09 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Cookie 小记
2010/04/01 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
自荐信格式
2013/12/01 职场文书
调解员先进事迹材料
2014/02/07 职场文书
《云房子》教学反思
2014/04/20 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
婚庆司仪开场白
2015/05/29 职场文书
酒桌上的开场白
2015/06/01 职场文书
入党后的感想
2015/08/10 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫