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最佳实践完整篇
Aug 20 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
JS获取页面窗口大小的代码解读
Dec 01 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
bootstrap table实例详解
Jan 06 Javascript
JS中关于正则的巧妙操作
Aug 31 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
jQuery层叠选择器用法实例分析
Jun 28 jQuery
React 实现车牌键盘的示例代码
Dec 20 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 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/11/25 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
提高php编程效率技巧
2015/08/13 PHP
php实现微信发红包
2015/12/05 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python列表计数及插入实例
2014/12/17 Python
Python实现针对中文排序的方法
2017/05/09 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
pymysql 开启调试模式的实现
2019/09/24 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
市场部规章制度
2014/01/24 职场文书
初三学生评语大全
2014/04/24 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android