2015-06-24 2 views
0

Я пытаюсь сделать логин для своего приложения, используя созданный вами api для отдыха. Если я заставляю полный URL с пользователем и передача Он работает хорошо:

http://www.myexample.com/ACTION/USER/PASSWORD/ 

Но мне нужно взять данные из полей ввода моей формы. Это код функции в моем контроллере:

$scope.authenticar = function(selectedUs, selectedPw){ 
    $scope.remoteData = null; 
    //alert(selectedUs); 
    dataService.getData(function(data) { 
    $scope.resultAPI = data; 
    $scope.username=$scope.resultAPI.username; 
    $scope.id_user=$scope.resultAPI.id_user; 
    $scope.isauthenticated=$scope.resultAPI.isauthenticated; 
    $scope.user_role=$scope.resultAPI.user_role; 
    $scope.complete_name=$scope.resultAPI.complete_name; 
    }); 
} 

И это код услуги:

.service('dataService', function($http) { 
    delete $http.defaults.headers.common['X-Requested-With']; 

    this.getData = function(callback) { 
    var myparams = {a: '', u: '', p: ''}; 
    myparams.a = 'ZW50cmFy'; 
    myparams.u = 'anRk'; 
    myparams.p = '899960d8dd39b29e790845912cb35d96'; 
    $http({ 
     method: 'GET', 
     url: 'http://www.adagal.net/api_adagal/api.php', 
     withCredentials: false, 
     params: myparams, 
     headers: { 
       'Content-Type': 'application/json; charset=utf-8' 
     } 
    }).success(function(data, status, header, config){ 
    // With the data succesfully returned, call our callback 
     callback(data); 
    }).error(function(){ 
     $scope.remoteData = null; 
     return "Connection Error"; 
    }); 
    } 
}); 

Я попытался пройти все пути, как я могу получить URL таким образом?

+0

Непонятно, что вы пытаетесь сделать здесь. Кажется, вы хотите передать динамическую строку в хэширование URL-адреса $ http? Это правда? Какова ваша проблема в этом случае? –

+0

Правда, я пытаюсь передать динамическую строку в $ http. Моя проблема заключается в том, передаю ли параметры функции, что-то вроде этого: this.getData = function (callback, p, u) { Это не работает, не передавайте данные. –

ответ

0

Не совсем уверен, что вы пытаетесь сделать здесь, вы хотите передать имя пользователя и пароль d по url? или отправить/получить данные?

В любом случае вам необходимо передать имя пользователя и пароль в службу. Вы можете сделать это, передав его в служебной функции.

this.getData = function(username, password, callback) { 
    ... 
    })... 
} 

На вызывающей стороне:

dataService.getData($scope.username, $scope.password, function(){...}); 
0

Если я правильно понял ваш вопрос, вы должны изменить свою службу, как это:

.service('dataService', function($http) { 
    delete $http.defaults.headers.common['X-Requested-With']; 
    this.getData = function(URL, callback) { 
    var myparams = {a: '', u: '', p: ''}; 
    myparams.a = 'ZW50cmFy'; 
    myparams.u = 'anRk'; 
    myparams.p = '899960d8dd39b29e790845912cb35d96'; 
    $http({ 
     method: 'GET', 
     url: URL, 
     withCredentials: false, 
     params: myparams, 
     headers: { 
       'Content-Type': 'application/json; charset=utf-8' 
     } 
    }).success(function(data, status, header, config){ 
    // With the data succesfully returned, call our callback 
     callback(data); 
    }).error(function(){ 
     $scope.remoteData = null; 
     return "Connection Error"; 
    }); 
    } 
}); 

А потом называют это так:

var url = "http://wwwmyexample.com/ACTION/" + $scope.selectedUs + "/" + $scope.selectedPw + "/" 
    dataService.getData(url, function(data) { 
    $scope.resultAPI = data; 
    $scope.username=$scope.resultAPI.username; 
    $scope.id_user=$scope.resultAPI.id_user; 
    $scope.isauthenticated=$scope.resultAPI.isauthenticated; 
    $scope.user_role=$scope.resultAPI.user_role; 
    $scope.complete_name=$scope.resultAPI.complete_name; 
}); 

И в HTML вы должны иметь что-л, как это:

<input ng-model="selectedUs" /> 
<input ng-model="selectedPw" /> 
0

Спасибо всем за ответы. Я нашел ошибку:

dataService.getData(function(u, p, data) { 

И здесь была моя ошибка

dataService.getData(u, p, function(data) { 

Я укладывал и и р у данных, непростительной ошибкой. Спасибо всем за помощь.

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