2015-02-17 2 views
0

У меня есть функция angularjs, которая получит результат проверки и на основе этого будет обрабатывать страницу.Служба Angularjs не получает значение в контроллере

****************************** My Controller **************** 
angular.module('angularApp').controller('angularCtrl', function($scope,validateFactory){ 

    function getValidationResult(){ 
     return validateFactory.getValidationResult().then(function(data){ 
     return data; 
    }); 
    } 

    $scope.submission = function submitForm(){ 
     $scope.form.email.$error.validateEmail = getValidationResult(); 

     if(validateEmail){ 
     /* Based on validateEmail value there are some code needs to be executed*/ 
     }  
    } 
}); 

**************************** My Validation Service *********************** 


angular.module('angularApp').factory('validateFactory',function($http,$log){ 
return { 
    getValidationResult : getValidationResult 
}; 

function getValidationResult(){ 
    return $http.get('data/email-exists.json').then(getValidationCompleted).catch(getValidationFailed); 

    function getValidationCompleted(response){ 
     return response.data; 
    } 

    function getValidationFailed(error){ 
     console.log("There is an error in email validation"); 
    } 
}; 

Я не получаю данные JSON для переменной validateEmail, Вместо этого я получаю обещание и что будет решено после если петель. Я пробовал с $ q.defer(), но получаю тот же результат, или я могу пропускать несколько строк, так как я новичок в угловых js. Любая помощь будет оценена.

ответ

0

Вы не нашли маленькую деталь getValidationResult возвращает обещание так что вам нужно изменить:

$scope.form.email.$error.validateEmail = getValidationResult(); 

    if(validateEmail){ 
    /* Based on validateEmail value there are some code needs to be executed*/ 
    } 

To:

getValidationResult().then(function(data) { 
     if(data){ 
     /* Based on validateEmail value there are some code needs to be executed*/ 
     $scope.form.email.$error.validateEmail = data; 
     } 
    }); 
+0

Нет везения. Получение того же – Hurix

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