2016-09-24 49 views
0

該腳本不會僅返回我需要從我的JSON中返回的值。我需要JSON的名稱
當我在輸入字段中鍵入某個值時,以下內容會生成一個自動提示。 參考:http://plnkr.co/edit/08vi4ncjLrWfUBjWrZKS?p=previewtypeahead函數不會返回來自我的JSON的值

然而,這並不在我的代碼返回任何JSON值:

  <script> 
      var app = angular.module('myApp', ['ui.bootstrap']); 
      app.controller('myController', function($scope, $http){ 
       $scope.getAirport = function(inp){ 
        return $http.get('https://raw.githubusercontent.com/vedvasa/airports/master/airports.json', { 
         params: { 
         name : inp, 
         sensor : false 
         } 

        }).then(function(res){ 
         var names = []; 
         angular.forEach(response.data.records, function(item){ 
          names.push(item.addedNames); 
         }); 
         return names; 
         }); 
       }; 

         $scope.on_item_selected=function($item, $model, $label) 
         { 
          $scope.selected_item = $item; 
         } 
      }); 
      </script> 



      <div ng-app="myApp" ng-controller="myController"> 

       <form> 
        <input type="text" class="form-control" id="source" placeholder="Enter Airport Code or City Name" ng-model="asyncSelected" typeahead="name for name in getAirports($viewValue)" typeahead-loading="loadingAirports" typeahead-on-select="on_item_selected($item, $model, $label)"> 
       </form> 

      </div> 

回答

1

你正在使用response代替res

 <script> 
     var app = angular.module('myApp', ['ui.bootstrap']); 
     app.controller('myController', function($scope, $http){ 
      $scope.getAirport = function(inp){ 
       return $http.get('https://raw.githubusercontent.com/vedvasa/airports/master/airports.json', { 
        params: { 
        name : inp, 
        sensor : false 
        } 

       }).then(function(response){ // <---- I changed this to response 
        var names = []; 
        angular.forEach(response.data.records, function(item){ 
         names.push(item.addedNames); 
        }); 
        return names; 
        }); 
      }; 

        $scope.on_item_selected=function($item, $model, $label) 
        { 
         $scope.selected_item = $item; 
        } 
     }); 
     </script> 



     <div ng-app="myApp" ng-controller="myController"> 

      <form> 
       <input type="text" class="form-control" id="source" placeholder="Enter Airport Code or City Name" ng-model="asyncSelected" typeahead="name for name in getAirports($viewValue)" typeahead-loading="loadingAirports" typeahead-on-select="on_item_selected($item, $model, $label)"> 
      </form> 
+0

這wiould還是不行 – jack