gpt4 book ai didi

javascript - Angular 工厂成功和错误回调

转载 作者:行者123 更新时间:2023-12-03 08:44:55 25 4
gpt4 key购买 nike

我已经设置了一个带有成功和错误回调的工厂。但是,当我在 Controller 中使用它时,我需要始终定义成功和错误函数,如果我不定义错误回调函数,它将无法工作。

无论如何,在需要使用错误回调时,是否可以使错误回调可选。

Controller

$scope.saveUsername = function(){
atFactory.saveUsername($scope, function(){
// this is success
}, function(){
// this is error
});
}

工厂

at.factory('atFactory', ['$http' , function ( $http ){
var factory = {};

factory.saveUsername = function($scope,callback){
$scope.url = '/member/username';
$scope.post_data = {
username : $scope.username
};
factory.doPostHttpRequest($scope).success(callback).error(callback);
}

factory.doPostHttpRequest = function($scope){
return $http({
url : $scope.url,
method: 'POST',
data: $scope.post_data
})
}

return factory;

}]);

最佳答案

我给您的建议是将 $http promise 返回给 Controller ,然后您可以在 Controller 中调用 success() (也可以选择 错误())。

所以在你的工厂:

factory.saveUsername = function($scope){
$scope.url = '/member/username';
$scope.post_data = {
username : $scope.username
};
return factory.doPostHttpRequest($scope);
}

factory.doPostHttpRequest = function($scope){
return $http({
url : $scope.url,
method: 'POST',
data: $scope.post_data
})
}

然后在您的 Controller 中,您可以执行以下操作:

atFactory.saveUsername($scope)
.success(function(response) {
// success callback (optional)
})
.error(function(error) {
// error callback (optional)
});

关于javascript - Angular 工厂成功和错误回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com