由在AngularJS中具有关系的其他数组/对象排序

时间:2016-07-28 22:08:04

标签: javascript angularjs sorting

我有一些数组但想要使用不同的过滤器进行排序。这些数组都是一个数组的一部分,但是我把它们分开了,并希望根据一个数组的排序对它们进行排序。希望这是有道理的。基本上,Events数组是基本数组,实际上包含scope.films,scope.genres和scope.dates所携带的所有数据......提取影片并将其放入自己的数组中。日期取自活动,而类型则取自电影。在我继续之前,这是一些代码:

  scope = this

  scope.events = [{
    'films' : [{
              'name': 'Film Name 1',
              'genre': 'Horror'
              }]
    'date': '12/23/16'
  }]

  scope.films = [{
    'name' : 'Film Name 1'
    'genre': 'Horror'
  }]

  scope.genres = [{
    'genre': 'Horror'
  }]

  scope.dates  = [{
    'date': '12/23/16'
  }]

我正在使用它显示它:

<div ng-repeat-start="event in scope.events | filter:scope.query">
{{event.date}}

目前用这个来拍电影:

<div ng-repeat="film in event.films | orderBy:name">
{{film.name}}

我的最终目标是能够使用下拉列表对此数据​​进行排序:

<select ng-model="scope.orderList">
  <option value="date">Date</option>
  <option value="genre">Genre</option>
  <option value="film">Film</option><!--- this is film.name--->
</select>

到目前为止,在我的控制器中我有类似的东西:

  scope.orderList = 'start_date'

  $scope.$watch angular.bind(scope, () -> return scope.query), (val) ->
    _.each scope.events, (event) ->
      if scope.orderList == 'start_date'
        # sort by date
        scope.orderList = 'start_date'
        scope.events =  $filter('orderBy')(scope.events, start_dates, reverse)
      else if val == 'film'
        # sort by film
        scope.orderList = 'film'
        # Logic to sort by film.name in scope.films
      else if val == 'genre'
        # sort by genre
        scope.orderList = 'genre'
        # Logic to sort by genre in scope.genre
        return

我很茫然。有没有其他方法可以使用过滤器对这些关系进行排序?

0 个答案:

没有答案