AngularJS学习笔记–$resource的应用
$resource对$http进行了封装,通过$resource将资源映射为对象,我们可以像操作对象一样方便的调用RESTful的服务端数据源。下面是一个$resource的实例:
使用$resource服务需要导入相应的js文件:
<script type="text/javascript" src="framework/angular-1.3.0.14/angular.min.js"></script>
<script type="text/javascript" src="framework/angular-1.3.0.14/angular-resource.min.js"></script>
使用$resource创建一个资源对象:
var studentResource = $resource(
'/rest/student/:id', /*参数一:服务端api的url*/
{},/*参数二:默认的请求参数*/
{
/*参数三:声明可执行的actions*/
get: {method: 'GET'},
save: {method: 'POST'}
}
);
声明调用资源对象的方法:
var getSutudent = function(studentId){
var deferred = $q.defer();
studentResource.get(
{id: 100}, //参数
function(student){ //请求成功回调函数
deffered.resolve(student);
},
function(error){ //请求出错回调函数
//log
deferred.reject(error);
}
);
return deferred.promise;
};
var submitStudent = function(student){
var deferred = $q.defer();
studentResource.save(
{id: student.id},
{
student: student //构造POST请求的数据
},
function(result){ //请求成功回调函数
deffered.resolve(result);
},
function(error){ //请求出错回调函数
//log
deferred.reject(error);
}
);
return deferred.promise;
};
调用声明的方法获取、修改资源:
var student;
var deferred = $q.defer();
getSurvey(studentId).then(
function (student) {
deferred.resolve(student);
},
function (error) {
deferred.reject(error);
}
);
student = deferred.promise;