0

我在我的项目中使用 angular 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()...

OK 将执行成功调用 NotFound 将执行错误调用...

所以在js方面,如果我检查字符串是否为空。
如果强制为空(没有服务器跳闸)我想'返回' .error 回调....

可能吗????????????

$http.post 将使服务器跳闸。我知道。但是如果我想强行返回错误承诺,在客户端怎么办?

4

2 回答 2

0

如果您不想在没有有效输入的情况下发出 HTTP 请求,只需在执行任何操作之前检查输入即可。像这样:

if(<valid input>) {
  return  $http.post('api/students',model)
  .success(function(data) {

  })
  .error(function(data) {

  }) ;
} else {
  // don't do request
}
于 2014-12-16T19:46:44.447 回答
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");
          }

        };
        ...
     }]);
于 2014-12-16T19:53:22.390 回答