2014-12-16 3 views
0

i m используя угловой xeditable для моего проекта.возвращение углового обещания на стороне клиента. без сервера round-trip

i m Использование углового xeditable компонента строки для моей сетки.

, как я знаю,

, если я использую

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

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

, как я знаю, что происходит, - выше код будет вызывать студентов CONTROLLER сообщение метод веб-апи ... если она возвращает OK, успех будет выполнен п возвращается еще ошибка будет выполняться п возвращается ......

но мой вопрос - я могу позвонить .error звонок от самого JavaScript ....

позволяет говорить

if(textbox == "") 

     return $http.post().error()....... 

    else 

     return $http.post().sucess().... 

Почему я хочу что-то вроде этого ???

потому что для одиночного текстового поля мне нужно сделать попытку сервера, чтобы проверить, пуст он или нет. если оно не пусто, я вернуться OK() еще я вернуться (позволяет говорить) NotFound() ...

OK выполнит успех вызов NotFound выполнит вызов ошибки ...

так на Js стороне если я проверяю, является ли строка пустой или нет.
Если пустая сила (без остановки сервера), я хочу «вернуть» .error callback ....

это возможно ????????????

$ http.post сделает серверным путешествие. я знаю это. но что на стороне клиента, если я хочу вернуть ошибку, решительно?

+0

Почему не просто абстрактный обработчик ошибок за именем функции, которую вы можете позвонить напрямую, а не дело с $ HTTP, когда вы не хотите, чтобы сделать запрос HTTP? –

ответ

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"); 
      } 

     }; 
     ... 
    }]); 
0

Если вы не хотите делать запрос HTTP без действительного ввода, просто проверьте ввод, прежде чем что-либо делать. Как так:

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

    }) 
    .error(function(data) { 

    }) ; 
} else { 
    // don't do request 
} 
Смежные вопросы