angular学习笔记(二十一)-$http.get
基本语法:
$http.get('url',{}).success(function(data,status,headers,config){
}).error(function(data,status,headers,config){
})
$http.get接受两个参数:
1. url: 请求的路径
2. json对象: 请求参数配置,如 {params:{id:5}}
这样得到的实际路径就是url?id=5
$http.get返回的对象有两个回调方法:
1. success: 请求成功的回调
2. error: 请求失败的回调
这两个方法都有四个参数:
①data: 返回的数据(或错误)
②status: 响应的状态码
③headers: 这样一个函数,具体是什么暂时不详
function (name) {
if (!headersObj) headersObj = parseHeaders(headers);
if (name) {
return headersObj[lowercase(name)] || null;
}
return headersObj;
}
④congfig: 请求的配置对象
{
method: "GET",
url: "/api/user",
params: {id:5}
}
下面看实例:
我们将请求得到的数据放入span标签内:
html:
<!DOCTYPE html>
<html ng-app = 'HttpGet'>
<head>
<title>18.1 $http.get方法</title>
<meta charset="utf-8">
<script src="angular.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller = "dataController">
<span>{{data}}</span>
</div>
</body>
js:
var httpGet = angular.module('HttpGet',[]);
httpGet.factory('getData',function($http,$q){
return function(){
var defer = $q.defer();
$http.get('/api/user').success(function(data,status,headers,congfig){
//console.log(status);
//console.log(headers);
//console.log(congfig);
defer.resolve(data);
}).error(function(data,status,headers,congfig){
defer.reject(data);
});
return defer.promise
}
});
httpGet.controller('dataController',function($scope,getData){
$scope.data = getData()
});
*注意以下方式是错误的:
因为data是异步返回的,必须使用$q的promise
var httpGet = angular.module('HttpGet',[]);
httpGet.factory('getData',function($http,$q){
return function(){
var newdata = '';
$http.get('/api/user').success(function(data,status,headers,congfig){
newdata = data;
}).error(function(data,status,headers,congfig){
newdata = data;
});
return newdata
}
});
httpGet.controller('dataController',function($scope,getData){
$scope.data = getData()
});
后端node代码:
var express = require('express');
var app = express();
app.use(express.static(__dirname+''));
var data = 'angularjs中的$http.get';
app.get('/api/user',function(req,res){
res.send(data)
});
app.listen(3000);
完整代码地址: https://github.com/OOP-Code-Bunny/angular/tree/master/OREILLY/18.1%20%24http.get
angular学习笔记(二十一)-$http.get的更多相关文章
- angular学习笔记(二十八-附2)-$http,$resource中的promise对象
下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...
- angular学习笔记(二十九)-$q服务
angular中的$q是用来处理异步的(主要当然是http交互啦~). $q采用的是promise式的异步编程.什么是promise异步编程呢? 异步编程最重要的核心就是回调,因为有回调函数,所以才构 ...
- angular学习笔记(二十七)-$http(5)-使用$http构建RESTful架构
在angular中有一个特别为RESTful架构而定制的服务,是在$http的基础上进行了封装. 但是为了学习,我们先看看用直接$http是如何构建RESTful架构的: 假设有一个银行卡的列表.需要 ...
- angular学习笔记(二)-创建angular模块
如果在页面的html标签(或任意标签)中添加ng-app,表示对整个页面应用angular来管理. 他是一个模块. 模块有助于把东西从全局命名空间中隔离. 今天学习如何自定义创建模块: <!DO ...
- angular学习笔记(二十八-附1)-$resource中的资源的方法
通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,$save,$delete,$remove,可以直接调用来保存该资源: 比如有一个$resour ...
- angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构
ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入 ...
- 过滤器(web基础学习笔记二十一)
一.过滤器简介 二.在Eclipse中创建过滤器 三.使用过滤器设置全部web字符编码 public void doFilter(ServletRequest request, ServletResp ...
- angular学习笔记(二十六)-$http(4)-设置请求超时
本篇主要讲解$http(config)的config中的timeout项: $http({ timeout: number }) 数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错 ...
- angular学习笔记(二十五)-$http(3)-转换请求和响应格式
本篇主要讲解$http(config)的config中的tranformRequest项和transformResponse项 1. transformRequest: $http({ transfo ...
随机推荐
- faster rcnn测试VOC2012的问题
Traceback (most recent call last): File "./tools/test_net.py", line 90, in test_net(net, i ...
- vue 数组 新增元素 响应式原理 7种方法
1.问题 思考一个问题,以下代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- fread与read的差别(文件io补充)
这里有一个我们常常提出的问题就是fread,read的差别.(当然这两个分别代表了操作文件系统的两套不同的函数,包含open,read, write, seek 等). 一.他们的差别就是一个(rea ...
- Python之上下文管理器
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python之上下文管理器 #http://python.jobbole.com/82620/ #语法形式: ...
- spring boot更换日志为log4j2
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- java IO流之文件切割两例(含Properties 用法)
package cn.itcast.io.p1.splitfile; import java.io.File;import java.io.FileInputStream;import java.io ...
- linux软硬链接
ln分为软链接和硬链接 1.软连接 -s ln -s /mnt/hgfs/SHARE hvshare2 相当于在当前目录下新建一个名为hvshare2的快捷方式指向/mnt/hgfs/SHARE路 ...
- 从gentoo回归Arch,上组图
Arch一直在我笔记本里边,只是玩gentoo时我不进Arch了,现在回归Arch,升级到了最新,用上了gentoo的最新的2.6.31内核(自己配置,无initrd),引导程序用的grub4dos: ...
- C输出大于127的ACSII字符
近期,我们的DNS服务器收到了一些异常的域名请求,从访问日志看到很多域名都被返回了FORMAT ERROR的错误码,但是访问日志中的域名看起来很正常啊,为什么会返回FORMAT ERROR的错误码呢? ...
- PHP5.3新特性
1.首先对之前滥用的语法进行了规范 众所周知PHP在语言开发过程中有一个很好的容错性,导致在数组或全局变量中包含字符串不使用引号是可以不报错的,很多业余的开发者因为懒惰而产生的安全问题十分严重,之所以 ...