从datalist中选择项目后,ng-change将再次显示结果

时间:2016-10-21 09:09:33

标签: javascript angularjs dom

我是AngularJS的新手。我的html代码中有一个输入文本框,用于选择一个来自数据库的城市。为此,我正在调用API。结果填充了数据主义者,这是正常的。但是当我从datalist中选择一个项目时,它再次调用该方法,它显示的是我选择的相同结果。我知道这是因为改变了。任何人都可以给我一个解决这个问题或任何可以帮助我的想法。感谢您的帮助

我的HTML:

<input type="text" list="cityList" class="form-control" placeholder="Select City" ng-model="selectcity" ng-change="searcity()" class="form-control" id="seacityincoucat">
 <datalist id="cityList">
    <option ng-repeat="city in cities.results" value="{{city.name}}">
 </datalist>

控制器:

$scope.searcity = function () {
        var ciseurl = urlcs + $scope.selectcity;
        $http.get(ciseurl, config).then(function (response) {
            if (response.data.status === '$200') {
                $scope.cities = response.data;
                var x = $scope.cities.results;
                couponSvc.setCityId(x[length].id);
            }else{
                alert("try some thing else");
            }
        });
    };

2 个答案:

答案 0 :(得分:0)

使用ng-blur代替ng-change

<input type="text" list="cityList" class="form-control" placeholder="Select City" ng-model="selectcity" ng-blur="searcity()" class="form-control" id="seacityincoucat">

答案 1 :(得分:0)

使用ngKeyPress

<input type="text" list="cityList" class="form-control" placeholder="Select City" ng-model="selectcity" ng-keypress="searcity()" class="form-control" id="seacityincoucat">