2016-11-09 6 views
0

Я новичок в angularjs, мне нужен идентификатор города, основанный на выборе города, в поле ввода, когда пользователь начинает вводить любой символ, который он вызывает API, в зависимости от результата, я показываю, что в datalist, где все названия городов заполняются. Идентификатор City также присутствует в объекте ответа (объект JSON). ИТ работает нормально, но мне нужен идентификатор города в определенном выбранном городе. Я не знаю, как это реализовать. Любая помощь заметна.Как получить cityid, основанный на выборе города

Мой HTML:

<input type="text" list="cityList" placeholder="Select City from name " ng-model="selectcity" ng-keyup="selCity()" id="seacityincoucat" /> 
    <datalist id="cityList"> 
    <option ng-repeat="city in cities" value="{{city.name}}"> 
    </datalist> 

Мой контроллер:

$scope.selCity = function() { 
     var ciseurl = EF_CONS.ALL_CITY_POINT + $scope.selectcity; 
     $http.get(ciseurl, config).then(function (response) { 
      $scope.cities = response.data.results; 

     }); 
    }; 

ответ:

{ 
    "httpHeaders": { 
     "message": "cities found : 9" 
    }, 
    "metadata": null, 
    "results": [ 
     { 
      "source": "Self", 
      "id": 12, 
      "name": "Bareilly", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 13, 
      "name": "Belgaum", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 14, 
      "name": "Bengaluru", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 15, 
      "name": "Berhampur", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 16, 
      "name": "Bhilai", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 17, 
      "name": "Bhopal", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 18, 
      "name": "Bhubaneswar", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 19, 
      "name": "Bhusaval", 
      "code": null, 
      "active": false 
     }, 
     { 
      "source": "Self", 
      "id": 20, 
      "name": "Bilaspur", 
      "code": null, 
      "active": false 
     } 
    ], 
    "singleResult": null, 
    "status": "$200", 
    "count": null 
} 
+0

может создать у plunker –

ответ

0

Если я не ошибаюсь

В вашем HTML добавить следующее событие и опции для inp ut загружать все данные городов на загрузку страницы и принимать все данные в $scope.cities, ваша проблема будет решена.

ng-model="selectcity" ng-model-options="{ debounce: 1000 }" ng-change="getObjData(selectcity) 

Как ниже

<input type="text" list="cityList" placeholder="Select City from name" ng-model="selectcity" ng-model-options="{ debounce: 1000 }" ng-change="getObjData(selectcity);" id="seacityincoucat" /> 

В контроллере

$scope.getObjData = function(name){ 
    for(var i=0;i<$scope.cities.length;i++){ 
     if($scope.cities[i].name.toLowerCase() == name.toLowerCase()){ 
      console.log($scope.cities[i]); //ouput will prints the selected city object data 
      break; 
     } 
    } 
}; 
Смежные вопросы