RESTful类型API调用
Representational State Transfer(表征状态转移)
AngularJS提供$resource服务可以同支持RESTful服务器端数据源进行交互。
使用$resource步骤
1、引入angular-resource.js
2、添加依赖’ngResource’
3、获取资源实例:$resource(‘data/:name.json’,{name:’@username’})
基于GET的HTTP方法:
1)get(params,successFn,errorFn)
get方法可以不需要设置回调函数
2)query(params,successFn,errorFn)
get和query的唯一不同是AngularJS期望query返回的是数组
var app = angular.module('myApp', ["ngResource"]);
// 创建控制器获取用户tom的数据并显示
// 此处需要注入$resource,通过RESTful的形式查询数据
app.controller("MyController", function ($scope, $resource) {
// 获取资源实例
// var User = $resource("data/:name.json"); //{name: "@name"}可写可不写
var User = $resource("data/:name.json", {name: "@name"});
// 通过资源获取数据
方法一:资源中基于GET的HTTP方法:get, query
// get方法的使用:get(params,successFn,errorFn)
/* User.get({name: "tom"}, function (result) {
console.log(result);
$scope.user={username:result.username,age:result.age};
})*/
//注意:get方法可以不需要设置回调函数
// 可以直接使用返回结果,好像是一个同步调用
// $scope.user=User.get({name: "tom"});
//query方法的使用,它和get方法基本一致,唯一不同是AngularJS期待返回结果为数组
/*User.query({name: "users1"}, function (result) {
console.log(result);
})*/
方法二、基于非GET方法的HTTP方法
save(params,payload,successFn,errorFn) POST方法
delete(params,payload,successFn,errorFn) DELETE方法
remove(params,payload,successFn,errorFn) DELETE方法
delete和remove功能完全相同,remove是IE中的替代方法
})
tom.json文件
{
"username": "Tom",
"age": 17
}
users1.json文件
[
{"name": "Tom","age": 17},
{"name": "Marry","age": 18 }
]
<body ng-controller="MyController">
<h2>用户tom</h2>
<hr>
用户名:{{user.username}}<br>
年龄:{{user.age}}
<script src="js/angular.js"></script>
<script src="js/angular-resource.js"></script>
<script src="js/RESTful.js"></script>
</body>