2014-11-01 58 views
0

我正在使用Angular進行此應用。 我有一個JSON文件,裏面有5部電影,這些電影有一個與流派陣列。 我想要鏈接如:/電影/流派/恐怖 並在其中我想要顯示在其流派陣列中包含該流派的電影。使用外部API過濾Angular流派

在瀏覽器中的對象:http://i.imgur.com/WEv8Uog.png

的JSON文件:http://dennistel.nl/movies/

誰能幫助我?

在此先感謝! :)

+0

你可以說你已經嘗試了什麼,以及你有什麼困難阻止了你自己解決它? – 2014-11-01 20:19:28

+0

我試圖創建一個路由提供程序:.when('/ movies/genres /:genre'),並將其與控制器連接,試圖選擇這些類型,但這並不起作用。多種類型,我有點失落,我對這個很陌生,所以我可能會錯過一些絕對需要的東西,我也嘗試過創建某種函數,並在HTML中調用它 – TerraroQ 2014-11-01 20:45:42

回答

0

我不會爲你寫完整件事,但要說出你之前說過的,你已經嘗試過使用路由提供者,下面是一個應該讓你嘗試去的地方的例子。

$routeProvider.when('/movies/genres/:genre', { 
    controller: MovieGenresController, 
    templateUrl: 'template.html' 
}); 

MovieGenresController.$inject = ['$scope', '$routeParams', 'MoviesService']; 
function MovieGenresController($scope, $routeParams, MoviesService) { 
    // Making this lowercase will make comparisons easier 
    var searchGenre = $routeParams.genre.toLowerCase(); 

    var movies = MoviesService.getAll(); 
    var matchingMovies = []; 
    angular.forEach(movies, function(movie) { 
    if (movie.genres && movie.genres.length) { 
     for (var i = 0; i < movie.genres.length; i++) { 
     var movieGenre = movie.genres[i].toLowerCase(); 
     if (movieGenre === searchGenre) { 
      matchingMovies.push(movie); 
      break; 
     } 
     } 
    } 
    }); 

    $scope.movies = matchingMovies; 
} 

這顯然可以優化,但總體思路是存在的。您需要從$ routeParams中獲取流派並循環播放電影,以查看它們是否包含正在搜索的流派,將它們添加到最終將用於視圖中的數組中。

+0

I'我們來看看這個,謝謝你的時間和精力! – TerraroQ 2014-11-01 22:00:23