0

私のプロジェクトにangular xeditableを使用しています。

グリッドに角のある xeditable 行コンポーネントを使用しています。

私の知る限り

私が使用する場合

   return  $http.post('api/students',model).sucess(function(data) {

 })
.error(function(data) {
 }) ;

私が知っているように、何が起こるか-上記のコードは学生のCONTROLLERポストメソッド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約束を拒否できます。

エラー promise を返すには:

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 に答える