Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按子嵌套数组的第一个值对角度管道中的对象集合进行排序_Javascript_Angular_Sorting_Pipe - Fatal编程技术网

Javascript 按子嵌套数组的第一个值对角度管道中的对象集合进行排序

Javascript 按子嵌套数组的第一个值对角度管道中的对象集合进行排序,javascript,angular,sorting,pipe,Javascript,Angular,Sorting,Pipe,注: 我是个业余开发人员,还有很多东西要学 我不认为这是一个重复:其他一些问题是相关的(我试图调整建议的解决方案),但没有成功。由于电影的属性是只读的,因此必须在有角度的管道中使用它也会变得更加困难 该系列由电影组成: interface Movie { title: string; schedules: [ { theater: string, start: Date[] // array of dates such as "2017-06-1

注:

  • 我是个业余开发人员,还有很多东西要学
  • 我不认为这是一个重复:其他一些问题是相关的(我试图调整建议的解决方案),但没有成功。由于电影的属性是只读的,因此必须在有角度的管道中使用它也会变得更加困难
该系列由电影组成:

interface Movie {
  title: string;
  schedules: [
    {
      theater: string,
      start:   Date[]  // array of dates such as "2017-06-18T17:20:00.000+02:00"
                       // already sorted in ascending order
    }
  ]
}
用户可以按开始时间进行过滤,因此我设置了两个连续管道:

<div *ngFor="movies | moviesFilter:filter_parameters | moviesSort">
... 

我的建议是远离管道进行分拣。按照常规业务逻辑进行排序

Angular团队在这里解释道:

Angular不提供用于筛选或排序列表的管道。 熟悉AngularJS的开发人员将其称为filter和orderBy。 在角度上没有等价物

这不是疏忽。Angular不提供此类管道,因为它们 表现不佳,防止过度缩小


我的建议是远离管道进行分拣。按照常规业务逻辑进行排序

Angular团队在这里解释道:

Angular不提供用于筛选或排序列表的管道。 熟悉AngularJS的开发人员将其称为filter和orderBy。 在角度上没有等价物

这不是疏忽。Angular不提供此类管道,因为它们 表现不佳,防止过度缩小

Pipe({
  name: 'moviesSort',
  pure: true
})
export class MoviesSortPipe implements PipeTransform {
  transform(movies:movie[]):movie[] {
     ...
     ...
     return sorted_movies;
  }
}