Javascript Angularjs$http delete和$q PROMITE导致TypeError:对象不是函数
以下代码段返回以下错误:Javascript Angularjs$http delete和$q PROMITE导致TypeError:对象不是函数,javascript,angularjs,rest,angular-promise,angular-http,Javascript,Angularjs,Rest,Angular Promise,Angular Http,以下代码段返回以下错误:TypeError:object不是函数 service.deleteItem = function(itemId) { var def = $q.defer(); $http.delete(SERVER_REST_PATH + '/items/' + itemId) .success(function() { def.resolve(); }).error(function(data, status
TypeError:object不是函数
service.deleteItem = function(itemId) {
var def = $q.defer();
$http.delete(SERVER_REST_PATH + '/items/' + itemId)
.success(function() {
def.resolve();
}).error(function(data, status) {
def.reject("Error deleting the item");
});
return def.promise();
};
如果我按照以下方式重写它,它将正常工作:
service.deleteItem = function(itemId) {
return $http.delete(SERVER_REST_PATH + '/items/' + itemId);
};
我在我的应用程序中使用的所有其他$http方法(即GET、PUT、POST)都以相同的方式用$q包装,它们没有这个问题。只有删除导致了此问题。当我调试它时,它只跳过$http的success()、error()和then()方法。我正在使用angular版本1.3.13。更改
返回def.promise()代码>至返回定义承诺
例如:
function deferredTimer(success) {
var deferred = $q.defer();
$timeout(function() {
if (success) {
deferred.resolve({ message: "This is great!" });
} else {
deferred.reject({ message: "Really bad" });
}
}, 1000);
return deferred.promise;
}
如何使用service.deleteProfile
?在调用此函数的位置共享代码。只是没有看到它。到处找,但不是这个。周末工作不好;)谢谢我也犯了同样的错误。。所以这是我检查的第一件事:)