我在我的项目中使用了角度xeditable。
我在网格中使用了角度可编辑的行组件。
我知道
如果我使用
return $http.post('api/students',model).sucess(function(data) {
})
.error(function(data) {
}) ;
据我所知,会发生什么 - 上面的代码会调用学生CONTROLLER post方法web api ...如果它返回OK,成功将被执行n返回别的错误将被执行n返回......
但我的问题是 - 我可以从javascript本身调用.error调用....
让我们说
if( textbox == "")
return $http.post().error().......
else
return $http.post().sucess()....
为什么我想要这样的东西?
因为对于单个文本框,我必须进行服务器旅行以检查它是否为空。如果它不是空的,我返回OK()否则我返回(让我们说)NotFound()...
确定将执行成功通话 NotFound将执行错误调用...
所以在js方面,如果我检查字符串是否为空。
如果强行空(没有服务器旅行),我想“返回”#39; .error回调....
$ http.post将使服务器旅行。我知道。但是在客户端,如果我想强有力地返回错误承诺呢?
答案 0 :(得分:0)
如果您不想在没有有效输入的情况下发出HTTP请求,只需在执行任何操作之前检查输入。像这样:
if(<valid input>) {
return $http.post('api/students',model)
.success(function(data) {
})
.error(function(data) {
}) ;
} else {
// don't do request
}
答案 1 :(得分:0)
您可以使用$q
库来拒绝承诺。
要返回错误承诺:
angular.module(....)
.service('myService', ['$q', '$http', ....,
function($q, $http, ....) {
...
this.myFunction = function(data) {
if (isValid(data)) {
return $http.post(....);
} else {
return $q.reject("rejection message");
}
};
...
}]);