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 相关文章推荐
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
javascript面向对象包装类Class封装类库剖析
Jan 24 Javascript
javascript数组的使用
Mar 28 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Angular4 ElementRef的应用
Feb 26 Javascript
jQuery中的for循环var与let的区别
Apr 21 jQuery
angular 服务的单例模式(依赖注入模式下)详解
Oct 22 Javascript
微信小程序实现收货地址左滑删除
Nov 18 Javascript
原生js实现随机点名
Jul 05 Javascript
解决antd的Form组件setFieldsValue的警告问题
Oct 29 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模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
Vue指令指令大全
2019/02/09 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python实现的爬虫功能代码
2017/06/24 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python模拟实现斗地主发牌
2020/01/07 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
污水厂厂长岗位职责
2014/01/04 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android