Angular 数据请求的实现方法


Posted in Javascript onMay 07, 2018

使用 Angular 请求数据的时候,需要引入 HttpModule 模块,如果使用的 jsonp 模式的话,则需要另外引入 JsonpModule 模块

import { HttpModule, JsonpModule } from '@angular/http'

然后在当前模块中的 imports 内进行注册

imports: [
 HttpModule,
 JsonpModule
],

注册以后就可以在组件文件当中引入相对应的方法来进行数据请求了

import { Http, Jsonp } from '@angular/http'

然后在当前组件的构造函数当中进行注入以后就可以使用了

constructor(private http: Http, private jsonp: Jsonp) { }

使用如下,一个简单的 get 请求

// 进行注入,拿到相对应的方法
constructor(private http: Http, private jsonp: Jsonp) { }
public list: any = []
// 请求数据
getData() {
 let url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'
 let _this = this
 this.http.get(url).subscribe((data) => {
  _this.list = JSON.parse(data['_body'])['result']
  console.log(_this.list)
 })
}

前台进行渲染即可

<button (click)="getData()">get 请求数据</button>
<ul>
 <li *ngFor="let item of list">
  {{item.title}}
 </li>
</ul>

JSONP 请求数据

注意区分与 get 请求的区别,使用如下

// 请求数据
jsonpData() {
 let url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1&callback=JSONP_CALLBACK'
 let _this = this
 this.jsonp.get(url).subscribe((data) => {
  _this.list = data['_body']['result']
  console.log(_this.list)
 })
}
// 渲染
<button (click)="jsonpData()">jsonp 请求数据</button>
<ul>
 <li *ngFor="let item of list">
  {{item.title}}
 </li>
</ul>

不同点

请求的 url 参数结尾必须要添加指定的回调函数名称 &callback=JSONP_CALLBACK

请求的方式变为 this.jsonp.get(url)

请求后得到的数据格式不统一,需要自行进行调整

POST 请求

与 GET 的请求方式有些许不同,首先需要引入请求头 { Headers }

import { Http, Jsonp, Headers } from '@angular/http'

然后来对请求头进行定义,需要先实例化 Headers

private headers = new Headers({'Content-Type': 'application/json'})

最后在提交数据的时候带上 Headers 即可

postData() {
 let url = 'http://localhost:8080/login'
 let data = {
  "username": "zhangsan",
  "password": "123"
 }
 this.http.post(
  url,
  data,
  {headers: this.headers}
 ).subscribe((data) => {
  console.log(data)
 })
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery的让页面控件不可用的实现代码
Apr 27 Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
js实现网页抽奖实例
Aug 05 Javascript
详解Angularjs中的依赖注入
Mar 11 Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
vue如何进行动画的封装
Sep 26 Javascript
新手快速上手webpack4打包工具的使用详解
Jan 28 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
JavaScript数组去重算法实例小结
May 07 #Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
May 07 #Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 #Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 #Javascript
Vue 实现树形视图数据功能
May 07 #Javascript
JavaScript 跨域之POST实现方法
May 07 #Javascript
ES6关于Promise的用法详解
May 07 #Javascript
You might like
PHP安全编程之加密功能
2006/10/09 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
php数组指针操作详解
2017/02/14 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python import用法以及与from...import的区别
2015/05/28 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
Python调用C语言的实现
2019/07/26 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python解释器安装教程的方法步骤
2020/07/02 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
美发活动策划书
2014/01/14 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
校园开放日新闻稿
2015/07/17 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Python集合的基础操作
2021/11/01 Python
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL