2017-07-15 7 views
1

$ http()でmd-autocompleteを使用しようとしていますが、コンソールに値が表示されていますが、APiリクエストから返されたデータをオートコンプリートに表示することはできません。 returnキーワードを使用してJSON配列に格納された値を返そうとしました。md-autocompleteドロップダウンリストを設定する方法は?

 <md-autocomplete 
      md-autoselect=true 
      placeholder="Search for films" 
      md-items="item in querySearch(searchText)" 
      md-item-text="item.title" 
      md-min-length="2" 
      md-search-text="searchText" 
      md-selected-item="selectedItem"> 
     <md-item-template> 
      <span class="films-title"> 
      <span md-highlight-flags="^i" md-highlight-text="searchText"> 
       {{item.title}} 
      </span> 
      </span> 
     </md-item-template> 
     <md-not-found> 
      No match found. 
     </md-not-found> 
     </md-autocomplete> 

私が表示したいデータはJSONの配列に格納された内容は、コンソールで見ることができます。

'use strict'; 

filmApp.controller('SearchController',function ($scope, $http){ 
    $scope.results = { 
     values: [] 
    }; 

    $scope.querySearch = function (query) { 
    $http({ 
     url: 'https://api.themoviedb.org/3/search/movie?include_adult=false&page=1', 
     method: 'GET', 
     params: { 
       'query': query, 
       'api_key': apiKey 
     } 
     }).success(function (data, status) { 

      for (var i = 0; i < data.results.length; i++) { 
     $scope.results.values.push({title: data.results[i].original_title}); 

        console.log($scope.results.values);  
        return $scope.results.values; 

       } 
       console.log("STATUS: "+status); 

      }).error(function (error) { 
       console.log("ERROR: "+error); 
      }); 
     }; 
    }); 

答えて

2

querySearch方法は、あなたが帰国しなければならないpromise.thenから約束&を返す必要がありますデータ。だからあなたのquerySearch方法

$scope.querySearch = function (query) { 
    return $http.get('https://api.themoviedb.org/3/search/movie?include_adult=false&page=1', { 
     params: { 
      'query': query, 
      'api_key': apiKey 
     } 
    }).then(function (data, status) { 
     var data= response.data; 
     for (var i = 0; i < data.results.length; i++) { 
      $scope.results.values.push({title: data.results[i].original_title}); 
      console.log($scope.results.values);  
     } 
     return $scope.results.values; 
    }) 
}; 
+0

から復帰すべき約束を禁止され、あなたの場合、あなたが.success/.errorを使用し、コールバック(これらはすでに廃止されて考え)であなたのパンカジありがとう、動作しているようです。私は.success/.errorコールバックが返されることを約束しなかったことを認識しておらず、また非難されたことを知らなかった。 –

+0

@ YacubAliそれがあなたのために働いたことを知ってうれしい –

関連する問題