使用外部API过滤Angular中的流派

时间:2014-11-01 20:13:57

标签: javascript json angularjs

我正在使用Angular这个应用程序。 我有一个JSON文件,有5部电影,这些电影有一个阵列与Genres。 我希望有以下链接:/ movies / genre / horror 在其中我想要在其流派阵列中显示包含该类型的电影。

浏览器中的对象:http://i.imgur.com/WEv8Uog.png

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

任何人都可以帮助我吗?

提前致谢! :)

1 个答案:

答案 0 :(得分: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中获取该类型并循环播放电影以查看它们是否包含要搜索的类型,将它们添加到最终将在您的视图中使用的数组中。