我有一些数组但想要使用不同的过滤器进行排序。这些数组都是一个数组的一部分,但是我把它们分开了,并希望根据一个数组的排序对它们进行排序。希望这是有道理的。基本上,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
我很茫然。有没有其他方法可以使用过滤器对这些关系进行排序?