AngularJSfilter完全匹配

我需要按类别筛选项目列表。 我希望用户能够点击一个button,然后将filter应用到列表中。

目前,我在一定程度上有这个工作。

比方说,我有一个电影列表,如下所示:

<li ng-repeat="movie in movieList | filter:filters">{{ movie.title }}</li> 

而且我还有一个电影stream派的列表(呈现为button,点击时会过滤电影列表)呈现如下:

 <li ng-repeat="genre in genres"> <a ng-click="filters.genre = genre.name" ng-click='changeGenre(genre.name)'>{{genre.name}}</a> </li> 

(所有'changeGenre()'函数都会更新范围以显示当前正在查看的types)。

现在这个工作正常,直到我有一个情况,说我有2种types:“行动”和“行动冒险”。 当我用stream派“动作”过滤电影时,我不仅获得了动作电影列表,还获得了动作冒险电影。

有没有一种方法可以使用filter进行精确匹配?

现在在filter中本地提供。 您可以将true传递给filter以启用严格的匹配。

 <li ng-repeat="movie in movieList | filter : filters : true">{{ movie.title }}</li> 

Refereces

https://docs.angularjs.org/api/ng/filter/filter

https://stackoverflow.com/a/18243147/1466430

如果有人想在JavaScript端使用filter,可以这样做:

 $scope.filtered = $filter('filter')($scope.movieList, { genre.name: filters.genre}, true); 

注意到最后的真实情况……这表示search完全匹配。

filter也可以采取一个function,你可以实现自己的filter。 我做了一个活跃的运动: http ://plnkr.co/edit/v0uzGS?p=preview

以下是相关的代码:

 $scope.ChooseGenreFunction = function(genre) { $scope.filters = function(movie) { return movie.genre === genre; }; }; $scope.ChooseGenreString = function(genre) { $scope.filters = genre; };