Javascript 如何将$resource转换为$http?
如何将我对Javascript 如何将$resource转换为$http?,javascript,angularjs,ajax,angularjs-service,Javascript,Angularjs,Ajax,Angularjs Service,如何将我对$resource的使用转换为利用原始$http服务?那么,$resource到底做了什么,$http没有 return $resource(API_LINK+'/api/users/', { id: '@_id' }, { changePassword: { method: 'PUT', params: { controller:'password' } }, get: { method: 'GET',
$resource
的使用转换为利用原始$http
服务?那么,$resource
到底做了什么,$http
没有
return $resource(API_LINK+'/api/users/', {
id: '@_id'
},
{
changePassword: {
method: 'PUT',
params: {
controller:'password'
}
},
get: {
method: 'GET',
params: {
id:'me'
}
})
$resource
只是对$http
的一种抽象,其思想是API便于用于RESTful端点。没有任何$resource
可以使用$http
编写。利用$http
在工厂中编写上述内容的方法可能包括
// assumption that API_LINK is an injectable constant
.factory('MyService', function(API_LINK, $http) {
function changePassword(params) {
return $http.put(API_LINK +'/api/users/', params);
}
function get(id) {
return $http.get(API_LINK +'/api/users?id=' + id);
}
return {
changePassword: changePassword,
get: get
}
});
使用以下用法
.controller('ctrl', function($scope, MyService) {
MyService.get('me').then(function(response) {
// ...
});
MyService.changePassword({ controller: 'password' }).then(function(response) {
// ...
});
});
如果您需要通过涉及的承诺解决方案完全控制工厂功能,我建议您查看。我们也可以使用其他类似方法:
get: function() {
var id = 'me';
$http.get(API_LINK + '/api/users/' + id )
.success(function(response) {
defer.resolve(response);
})
.error(function(err) {
console.log('err', err);
defer.reject(err);
});
return defer.promise;
},
changePassword: function() {
$http.put(API_LINK + '/api/users/', {controller:'password'} )
.success(function(response) {
defer.resolve(response);
})
.error(function(err) {
console.log('err', err);
defer.reject(err);
});
return defer.promise;
}
有关$http和$resources之间的差异,请参阅此问题。get:function(){$http.get(API_LINK+'/API/users/',{id:'me',controller:'password'}).success(function(response){console.log('response',response);///defer.resolve(response);}.err(function(err){console.log('err',err err);//defer.reject(err);});//return defer.promise;}我这样做了,api工作正常,但给出了一个错误,错误是:TypeError:无法读取未定义的属性'hasOwnProperty'。您能详细说明一下您所做的吗?因为上面您在get方法中传递了两个参数..那么id:@\u id呢?我应该把它放在哪里