Angular:需要搜索栏处理 2 个不同的 ng-repeat

Angular: need search bar working on 2 different ng-repeat

我正在使用 Ionic/Angular。

我有一个搜索栏,我需要让它同时在 2 个不同的场景中工作。看:

<label class="item item-input">
    <i class="icon ion-search placeholder-icon"></i>
    <!--here is the ng-model query-->
    <input type="search" placeholder="Search" ng-model="query">
</label>
<!--here is the 1st filter:query-->
<div ng-repeat="sport in sports | filter:query" ng-show="sport.leagues.length">
  <div>
     <strong>{{sport.name}}</strong>
   </div>
   <!--here is the 2nd filter:query-->
   <div class="item item-button-right"
        ng-repeat="league in sport.leagues | filter:query"
        on-tap="goToLines(league)">
         {{league.name}}
   </div>

所以,我只需要当用户搜索某些东西时,搜索栏 returns sport.nameleague.name,你们清楚了吗?

更新* 这是我称之为运动的服务:

getSports:函数(代理){ var defer = $q.defer();

LocalForageFactory.retrieve(CONSTANT_VARS.LOCALFORAGE_SPORTS)
  .then(function(sports) {
    if (!_.isNull(sports)) {
      defer.resolve(_.values(sports));
    }else {
      $http.get(CONSTANT_VARS.BACKEND_URL + '/lines/sports/' + agent)
        .success(function(sports) {
          //forcing array instead of object
          sports = _.values(sports);
          sports = _.sortBy(sports, function(sport) {
            return sport.priority;
          });
          LocalForageFactory.set(CONSTANT_VARS.LOCALFORAGE_SPORTS, sports);
          defer.resolve(sports);
        })
        .error(function(err) {
          defer.reject(err);
        });
    }
  });
return defer.promise;

},

如果您想搜索 任一 字段,请删除第二个过滤器并使用特殊的 $ 遍历对象层次结构。有关详细信息,请参阅 the documentation

var myApp = angular.module('myApp',[]);

myApp.controller('TestController', ['$scope', function($scope) {
  $scope.sports = [
    {name: 'Basketball', leagues: [{name: 'Mens'}, {name: 'Womens'}]},
    {name: 'Volleyball', leagues: [{name: 'Mens'}, {name: 'Womens'}]},
    {name: 'test', leagues: [{name: 'test'}]}
  ];
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="TestController">
    <input type="search" placeholder="Search" ng-model="query">

    <div ng-repeat="sport in sports | filter:{$: query}" ng-show="sport.leagues.length">
      <div>
         <strong>{{sport.name}}</strong>
       </div>

       <div class="item item-button-right"
            ng-repeat="league in sport.leagues"
            on-tap="goToLines(league)">
             {{league.name}}
       </div>
   </div>
</div>