Angular JS — несколько значений флажков с несколькими значениями в элементе (ИЛИ операции)

#html #angularjs

#HTML #angularjs

Вопрос:

Я пытаюсь создать фильтр с другим флажком, флажок должен фильтроваться с помощью оператора ИЛИ, если в каком-либо из фильмов установлен какой-либо флажок. Элементы выглядели так:

 movies = [
          {title:'Man on the Moon', genre: [   
            {genreName: 'Family', genreId: '1'},  
            {genreName: 'Action', genreId: '2'}  
        ]},
          {title:'Meet the Robinsons', genre: [   
            {genreName: 'Family', genreId: '1'},  
            {genreName: 'Action', genreId: '2'}  
        ]},
          {title:'Sphere', [   
            {genreName: 'Family', genreId: '1'}    
        ]}
       ];
  

Я видел это обходное решение http://jsfiddle.net/GruffBunny/utKug/
И я пытаюсь работать отсюда, но я ничего не могу добиться.
Что у меня есть до сих пор в моем контроллере, так это:

 angular.module('MyModule', [])
    .controller( 'MyController', function($scope){
        $scope.showMovie = function(movie){
           angular.forEach(movie.genre, function(genreM){
           return genreM.genreName === $scope.Filter.Comedy || 
             genreM.genreName === $scope.Filter.Drama ||
             genreM.genreName === $scope.Filter.Action;
         }
        };

        $scope.movies = [
                  {title:'Man on the Moon', genre: [   
                    {genreName: 'Family', genreId: '1'},  
                    {genreName: 'Action', genreId: '2'}  
                ]},
                  {title:'Meet the Robinsons', genre: [   
                    {genreName: 'Family', genreId: '1'},  
                    {genreName: 'Action', genreId: '2'}  
                ]},
                  {title:'Sphere', [   
                    {genreName: 'Family', genreId: '1'}    
                ]}
               ];
    });
  

И вот HTML:

 <div ng-app='MyModule' ng-controller='MyController'>
    <h1>All movies - no filter</h1>
    <ul ng-repeat="movie in movies">
        <li>{{movie.name}}</li>
    </ul>

    <h1>Filtered movies</h1>
    <ul ng-repeat="movie in movies | filter:showMovie">
        <li>{{movie.name}}</li>
    </ul>

    <label>Comedy</label><input  type="checkbox" ng-model="Filter.Comedy" ng-true-value="Comedy"  data-ng-false-value=''/><br/>
    <label>Action</label><input  type="checkbox" ng-model="Filter.Action" ng-true-value="Action"  data-ng-false-value=''/><br/>
    <label>Drama</label><input  type="checkbox" ng-model="Filter.Drama" ng-true-value="Drama"  data-ng-false-value=''/>
</div>
  

Комментарии:

1. вместо showMovie того, чтобы быть свойством on $scope , оно должно быть определено как a .filter .

2. Недостаточно хорошо