2016-08-05 2 views
1

Im работает над угловымJS.Да Сделайте автоматический запрос

У меня есть вход, подключенный к службе, обслуживающей почтовый индекс. (в моем случае все почтовые индексы имеют 5 номеров)

Я хочу, чтобы при вводе 5-го номера он звонил без нажатия кнопки.

Моя служба заключается в следующей:

angular 
.module('myApp') 
.controller('codPostal', codPostal); 

function codPostal($scope, $http, $rootScope) { 
    $scope.SendCP = function() {   
     var config = { 
      headers : { 
       'Content-Type': 'application/json;charset=utf-8;' 
      } 
     } 
     $http({ 
      method:'GET', 
      url:'https://postal-code.service.com/' + $scope.formData.domicilio.codPostal, 

      headers: { 
       'Content-Type': 'application/json' 
      } 
     }) 
     .success(function (data, status, headers, config) { 
      $rootScope.cpResponse = data; 

     }) 
     .error(function (data, status, header, config) { 
      $scope.CPdetails = "Data: " + data + 
       "<hr />status: " + status + 
       "<hr />headers: " + header + 
       "<hr />config: " + config; 
     }); 
    }; 

}

Я использую 'SendCP' в качестве триггера, чтобы получить ответ.

+0

Добавить слушателя ключ вверх, подсчет символов, как только она равна 5, сделать вызов службы. –

ответ

2

Вы можете использовать ng-изменение на любом входе, имеющем ng-модель, и когда модель обновляется из-за пользовательского события (key up), произойдет смена ng-изменений, там вы можете проверить, строка соответствует 5, и если это срабатывает ваша функция.

angular.module('myApp',[]) 
 
.controller('myCtrl', function($scope){ 
 

 
    $scope.SendCP = function(){ alert('do existing thing here')} 
 
    
 
    $scope.zipCodeHandler = function(zipcode){ 
 
    if(zipcode.length==5) 
 
     $scope.SendCP(); 
 
    } 
 
});
<!DOCTYPE html> 
 
<html ng-app="myApp"> 
 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> 
 

 
<body ng-controller="myCtrl"> 
 

 
    <input ng-model="zipCodeHere" ng-change="zipCodeHandler(zipCodeHere)"/> 
 

 

 
</body> 
 

 
</html>

+0

почему голос? – shaunhusain

+1

Не знаю. Ваша ng-модель привязана к $ scope, вам не нужно передавать ее как параметр. – gyc

+0

Да, просто зависит от интерфейса, который вы хотите для функции, поскольку это было бы более простым для тестирования. – shaunhusain

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