【发布时间】:2018-01-31 15:04:03
【问题描述】:
我在 Angular2 中构建排序管道时有一个问题 这是我的管道代码:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sort'
})
export class SortPipe implements PipeTransform {
transform(value: any, propName: string): any {
return value.sort((a,b)=> {
return a[propName]-b[propName];
// if(a[propName]>b[propName]) {
// return 1;
// } else {
// return -1;
// }
});
}
}
当我在 cmets 中使用代码时,管道可以工作,但是当我使用 return a [propName]-b[propName]; 时它不工作;
【问题讨论】:
-
很有可能,您正试图通过外观从字符串中减去一个字符串
-
你看到了吗:angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe 它强烈建议不要建造排序或过滤的管道。而是在您的组件类中执行此操作。我在这里有一个过滤器示例:blogs.msmvps.com/deborahk/filtering-in-angular 你可以为排序做类似的事情。
-
@DeborahK 该建议没有提供任何证据。我已经在多个生产应用程序中使用过这样的管道,没有问题。
标签: arrays angular typescript pipe