2016-09-19 2 views
0

Im, используя AngularJS для получения данных из API Я делаю сервис и контроллер по угловым. Я получаю данные от службы и использую ее от контроллера. У меня есть функция проверки данных для ввода данных, чтобы проверить дублированный ключ, и служба сделает это, отправив ключ, введенный для разъединения. При нажатии кнопки «Сохранить» из контроллера вызывается функция «Проверить»(), «Проверить»(), вызов службы CheckExistedKey(). И у меня есть строка, как нижеAngularJS Получите результат службы http, когда это было сделано

if(validate() == true){ 
    alert(''); //something to do 
} 

И обслуживание как ниже

var defer = $q.defer(); 
var checkExistedKey = function (key){ 
    return $http.get('http://localhost:2807/api/Event/CheckExistedkey?key=' + key 
     ).then(function (results) { 
      defer.resolve(results.data); 
      return defer.promise(); 
     }); 
} 

Но тревога вызывается перед функцией валидации(). Я положил $ q.defer в службу, но ничего не изменилось. Pls мне помогает.

ответ

0

В Validate также необходимо добавить функцию обратного вызова -

function validate(){ 
    var deferredRequest = checkExistedKey(); 
     deferredRequest.then(function (success) { 
      return true; 
     } 
} 

Смотреть это - example

+0

Он по-прежнему не работает. Результат от validate() не определен –

+0

вы можете поделиться своим кодом функции проверки подлинности? – Disha

+0

'function validate() { var deferRequest = EventService.checkExistedKey ($ scope.Event.eventKey); deferRequest.then (функция (результат) { результат возврата; }); } ' Я nomalized все, так что вы можете понять –

Смежные вопросы