我想使用filterin角度,并希望过滤多个值,如果它具有值之一,则应该显示它。
filter
我有这样的结构:
movie具有属性的对象,genres我要过滤Action和Comedy。
movie
genres
Action
Comedy
我知道我可以做filter:({genres: 'Action'} || {genres: 'Comedy'}),但是如果我想动态过滤它该怎么办。例如filter: variableX
filter:({genres: 'Action'} || {genres: 'Comedy'})
filter: variableX
如何设置variableX的$scope,当我有我有过滤器类型的数组?
variableX
$scope
我可以将其构造为字符串,然后执行一个操作,eval()但我不想使用eval()…
eval()
我只是创建一个自定义过滤器。他们并不难。
angular.module('myFilters', []). filter('bygenre', function() { return function(movies,genres) { var out = []; // Filter logic here, adding matches to the out var. return out; } });
<h1>Movies</h1> <div ng-init="movies = [ {title:'Man on the Moon', genre:'action'}, {title:'Meet the Robinsons', genre:'family'}, {title:'Sphere', genre:'action'} ];" /> <input type="checkbox" ng-model="genrefilters.action" />Action <br /> <input type="checkbox" ng-model="genrefilters.family" />Family <br />{{genrefilters.action}}::{{genrefilters.family}} <ul> <li ng-repeat="movie in movies | bygenre:genrefilters">{{movie.title}}: {{movie.genre}}</li> </ul>