2016-04-16 9 views
1

Rotten Tomato APIを使用して映画検索を作成しようとしていますが、$scope.nameFilterをサービスに入力する方法がわかりません。私は、パラメータを渡すサービス機能を呼び出すコントローラに取り付けられた機能を使用することになりRotten Tomato APIを検索するためのパラメータを渡す

ビュー

<input type="text" ng-model="nameFilter" placeholder="Search..."/> 

サービス

 angular.module('MovieFeederApp.services', []) 
     .factory('rtAPIservice', function($http, $scope) { 

     var rtAPI = {}; 

     rtAPI.getMoviesAll = function($scope.nameFilter) { 
      return $http({ 
      method: 'JSONP', 
      url: 'http://api.rottentomatoes.com/api/public/v1.0/movies.json?q='+ $scope.nameFilter + '&page_limit=10&page=1&apikey=MyKey&callback=JSON_CALLBACK' 
      }); 
     } 
return rtAPI; 
}); 

答えて

1

:私はそのような何かをしたいと思います。ここで

は一例です:

HTML:

<input type="text" ng-model="filter" /> 
<button ng-click="search(filter)">Search Movie</button> 

CONTROLLER JS:

app.controller('ExampleCtrl', function($scope,rtAPIservice){ 

    $scope.filter = ''; 
    $scope.filteredMovies = []; 

    $scope.search = function(filter){ 
    rtAPIservice.getFilteredMovies(filter) 
     .then(function(data){ 
     $scope.filteredMovies = data; 
     }); 
    } 

}) 

ファクトリーサービスあなたの答えのための

app.factory('rtAPIservice', function($http) { 

    var rtAPI = {}; 

    rtAPI.getMoviesAll = function(filter) { 
    return $http({ 
     method: 'JSONP', 
     url: 'http://api.rottentomatoes.com/api/public/v1.0/movies.json?q='+ filter + '&page_limit=10&page=1&apikey=MyKey&callback=JSON_CALLBACK' 
     }); 
    } 

    return rtAPI; 
}); 
+0

ありがとう! :D私はこれを既に行っていますが、腐ったトマトから正しいJSONを取得するには、私のURLに検索キーワードを含める必要があります。問題は、このキーワードをどのように渡すかわからないことです。 –

+0

@ΕλένηΜάρκου:URLパラメータではありません。 'url:' http://api.rottentomatoes.com/api/public/v1.0/movies.json?q='+ filter + '&page_limit = 10&page = 1&apikey = MyKey&callback = JSON_CALLBACK''は動作しませんか? 'q = filter'は返されたJSONをフィルタリングするために使用されます – fbid

+0

私はあなたが提案したものを正確に試しました。 qパラメータはもはやnullではありませんが、何らかの理由で 'function'という値をとります。どんなキーワードを使っても、型付き関数と同じ結果が得られます。それはまだ適切に動作していませんが、それはまだ進歩ですので..ありがとう! –

関連する問題