AngularJs(Part 5)--与后台联系
AngularJS内置了$http这个服务来与后台联系。(默认会把接受到的数据转换为json)当然,还有一个$resource来提供与RESTful后台联系的服务。
$http服务
$http比较简单,下面是$http的常规用法
$http.get(url,[config])
.success(function(data,status,headers,config){
...
})
.error(function(data,status,headers,config){
...
});
$http还有下面的API:
$http.post(url[,data,config])
$http.put(url[,data,config])
$http.get(url,[config])
$http.delete(url[,config])
$http.head
$http.jsonp(url[,config]) //用来跨域联系
注意到在post和put方法签名中还有个data的参数,它用来传递需要往服务器发送的数据,他是{}类型的对象,config也是{}类型的对象,可以包含下面的属性
$http({
method:string,
url:string,
params:object, //精确来讲类型是一个key-value的map
data:string or object,
headers:object,
transformRequest:function (data,headersGetter){...} or an array of functions,
transformResponse:function(data,headersGetter){...} or an array of functions,
cache:boolean or Cache object,
timeout:number,
withCredentials:boolean
});
$service服务
$service包装了$http,让AngularJS可以使用RESTful风格编程。
看下面的例子:
module.factory('User',['$resource',function($resource){
return $resource('/user/:userId/card/:cardId',
{userId:'123',cardId:'@id'},
{charge:{
method:'POST',
params:{charge:true},
isArray:false
}});
}]);
可以看到,$resource的签名如下:
$resource(url[,defaultParameters,addtionalActions])
1.例子中url是'/user/:userId/card/:cardId',当中有两个奇怪的东西:‘:userId’和‘:cardId’。 意思是这个url是不完整的,一会儿要用defaultParameters中的userId和cardId属性值来分别代替这两个东西。如果找不到就会用空字符串代替
2.例子中defaultParameters是-- {userId:'123',cardId:'@id'},仍然有奇怪的东西:cardId:'@id'。意思是我现在也不知道是什么东西,但是一会儿使用User这个服务是会传参数过来,我会在参数里面找属性为id的值,并把它给cardId用。(这是最后也会传到url中的:cardId)
3.addtionalActions可以定义一些别的API。以后再说
那么在使用User这个服务时有如下的对应表:
调用的方法 发送的url
User.get({id:1}) /user/123/card/1
User.save({},uuser) /user/123/card
User.query() /user/123/card
User.query({id:1}) /user/123/card/1
User.delete({id:1}) /user/123/card/1
(像上面的query我们可以直接赋值给其他变量,如var users=User.query())
AngularJs(Part 5)--与后台联系的更多相关文章
- 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...
- 通过AngularJS实现前端与后台的数据对接(一)——预备工作篇
最近,笔者在做一个项目:使用AngularJS,从而实现前端与后台的数据对接.笔者这是第一次做前端与后台的数据对接的工作,因此遇到了许多问题.笔者在这些问题中,总结了一些如何实现前端与后台的数据对接的 ...
- AngularJs $http.post 数据后台获取不到数据问题 的解决过程
第一次使用 AngularJs 的 $http 模块的时候,遇到过后台获取不到前台提交数据的问题,检查代码没有发现问题,先上代码. js 代码 angular.module("newsApp ...
- angularjs制作的iframe后台管理页切换页面
<code> <!DOCTYPE html><html lang="zh" ng-app><head> <meta chars ...
- 简洁AngularJS框架后台管理系统bootstrap后台模板
最近在做一个后台管理的项目,但是没有设计图完全,所以就发现一款非常不错的模版. 这个模版是基于 AngularJS 和 bootstrap 的后台管理系统模版. Minovate是 AngularJS ...
- AngularJS从构建项目开始
AngularJS从构建项目开始 AngularJS体验式编程系列文章,将介绍如何用angularjs构建一个强大的web前端系统.angularjs是由Google团队开发的一款非常优秀web前端框 ...
- 快速搭建Web环境 Angularjs + Express3 + Bootstrap3
快速搭建Web环境 Angularjs + Express3 + Bootstrap3 AngularJS体验式编程系列文章, 将介绍如何用angularjs构建一个强大的web前端系统.angula ...
- angularjs的forEach使用
最近一直在写angularjs中的http后台数据交互,存在的问题就是数据传输中数据格式的问题,如何将传输过来的数据转化为自己需要的数据.当然如果你会一点后台语言的话,完全可以用在后台把数据转化为需要 ...
- AngularJS最理想开发工具WebStorm
http://blog.fens.me/angularjs-webstorm-ide/ Angularjs插件下载地址:http://plugins.jetbrains.com/plugin/6971 ...
随机推荐
- 解决pod search出来的库不是最新
为了让CocoaPods的引入不显示警告,在Podfile最上方加上: inhibit_all_warnings! pod search 一些第三方SDK,发现并不是最新版本,那是因为你的本地repo ...
- python 基础 9.0 安装MySQL-python-1.2.5客户端
一. 安装客户端 python 标准数据库接口为Python DB-API,Python DB-API 为开发人员提供了数据应用编程接口.参考地址:https://wiki.python.or ...
- DB Migrations更新数据库命令
在项目迭代的过程中,数据库结构常常需要跟随业务需求的变化做出调整,尤其在迭代的初期阶段,加一个字段减一个字段的需求更是家常便饭.在小型团队中,往往是负责开发功能模块的程序员在完成本地开发环境数据库的变 ...
- Servlet详解(转)
我们通过浏览器访问一个网页的过程,实际上是浏览器(例如IE)通过HTTP协议(参见附录B)和Web服务器(也叫做HTTP服务器)进行交互的过程. 也就是说,用户要访问网络资源,首先需要在网络上架设We ...
- 微信小程序开发:学习笔记[2]——WXML模板
微信小程序开发:学习笔记[2]——WXML模板 快速开始 介绍 WXML 全称是 WeiXin Markup Language,是小程序框架设计的一套标签语言,结合小程序的基础组件.事件系统,可以构建 ...
- 7-6 公路村村通(30 分) 【prime】
7-6 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤10 ...
- 怎么升级iOS10教程
在前两天的开发者大会上刚推出了iOS10,我介绍一下怎么升级到iOS10的办法.所有人只用一个iPhone就可以升级到iOS10,不需要电脑,也不需要开发者账号. http://bbs.feng.co ...
- JAVA源码分析------锁(1)
http://870604904.iteye.com/blog/2258604 第一次写博客,也就是记录一些自己对于JAVA的一些理解,不足之处,请大家指出,一起探讨. 这篇博文我打算说一下JAVA中 ...
- SQLSERVER2008 R2的端口设置
通过存储过程查看 我们首先打开sqlserver连接sqlserver2008的数据库实例,然后执行如下存储过程: --查询端口号 exec sys.sp_readerrorlog 0, 1, 'li ...
- 1.1 BASIC PROGRAMMING MODEL(算法 Algorithms 第4版)
1.1.1 private static void exercise111() { StdOut.println("1.1.1:"); StdOut.println((0+15)/ ...