2014-08-27 2 views
0

Я рассмотрел похожие вопросы, но все это не имеет смысла. У меня есть api, что я собираюсь использовать для входа в систему людей. Они предоставляют имя пользователя и пароль, а затем я запрашиваю api, который возвращает данные, которые помогают мне решить, следует ли вводить пользователя в систему или нет. Я пытаюсь выяснить, как передать значения из представления в службу и сделать правильную строку url для запроса URL-адреса. Вот видAngularJs - Pass Значения от представления до контроллера, затем для обслуживания

<div ng-controller="AppController"> 
    <input type="text" placeholder="username" ng-model="password" />   
    <input type="password" placeholder="Password" ng-model="password" /> 
    <input type="submit" value="Sign In" ng-click="login()" /> 
</div> 

Тогда вот это контроллер

app.controller('AppController', function ($scope, AppService) { 
    $scope.login = function() { 
     $scope.credentials = AppService.getData(); 
    }   
    $scope.username; 
    $scope.password; 
}); 

то служба

app.service('AppService', function ($http) { 
    this.getData = function() { 
     return $http({ 
      method: 'POST', 
      url: 'http://www.example.com/api/parent',/*should be http://www.example.com/api/parent?username=username&password=password */ 
      parameters: {   
      } 
     }); 
    } 
}); 

Что я нужна помощь в том, как добавить имя пользователя и пароль в целях создайте правильную строку запроса, как в комментарии в службе.

ответ

0

Выполняя вызов службы с контроллера, передайте имя пользователя и пароль, как этот AppService.getdata ($ scope.username, $ scope.password). И аналогичным образом измените определение функции в AppService, чтобы ожидать, что имя пользователя и служба станут параметрами.

+0

спасибо .. он работал нормально –

0

По какой причине вы не хотите передавать имя пользователя и пароль getData()?

Вместо этого $http вы можете использовать $resource и создать более сложный объект с пользовательской логикой и действиями.

Или вы можете просто использовать $ HTTP params аргумент (а не параметры) и просто передать:

parameters{'username': username, 'password': password} 
+0

я не думал о передаче имени пользователя и пароля в первую очередь. Кроме того, да, я изменил аргумент на параметры из параметров. Он отлично работает –

0

Вы можете передать параметры, как это:

return $http({ 
      method: 'POST', 
      url: 'http://www.example.com/api/parent',/*should be http://www.example.com/api/parent?username=username&password=password */ 
      parameters: {  
        username: $scope.username, 
        password: $scope.password 
      } 
     }); 
+0

, вы не можете просто передать $ scope.username и $ scope.password. Он говорит, что $ scope не определен. Лучший способ - изменить определение функции getData(), чтобы включить параметры, а затем в контроллер, вызывать $ scope.credentials = AppService.getData ($ scope.username, $ scope.password); –

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