2014-11-23 3 views
0

am Создание заявки на голосование, в которой конкретный избиратель с адресом электронной почты может голосовать только один раз однако код, который у меня здесь, работает слишком медленно, пожалуйста, как я скрываю следующие код $ http.post угловой код, который возвращает ответ, который я могу использовать

$scope.votecheck = function(item,emailid){ 
    var email = emailid; 
    if(typeof item !== 'undefined') 
    { 
    var jsonData = $.ajax({ 
    type: "GET", 
      url: 'ajax/voters.php?id='+item.ID+'&email='+email, 
       dataType: 'text', 
       async: false 
      }).responseText; 
if(jsonData === "CanVote"){ 

    return true; 
} 
else{ 

    return false; 
     } //return "canvote"; 
    } 
} 
+0

Проблема, вероятно, в скрипте voters.php. – dbugger

+0

мой скрипт работает нормально, но av читает async: false замедляет работу сети, поскольку он приостанавливает выполнение всех других javascript. Если я могу найти способ написать обратный вызов, который возвращает успех: функция (данные) выходит за рамки $ .ajax: S – Abiodun

ответ

0

использовать promise что-то вроде этого ...

$scope.voteCheck = function(email, id) { 
     var deffered = $q.defer(); 
     $http.get('ajax/voters.php?id='+item.ID+'&email='+email, { 
     }).success(function(data) { 
      deffered.resolve(data); 
     }); 
     return deffered.promise; 
    }; 

Тогда зови что-то вроде этого ...

var votePromise = $scope.voteCheck($item.ID, email); 
     votePromise.then(function (data) { 
       return(data === "CanVote"); 
}) 
}; 
Смежные вопросы