我无法把这段代码从角度1翻译成角度2:
ng-repeat="todo in todos | orderBy: 'completed'"
这就是我根据 Thierry Templer 的回答所做的:
组件模板:
*ngFor="#todo of todos | sort"
组件代码:
@Component({
selector: 'my-app',
templateUrl: "./app/todo-list.component.html",
providers: [TodoService],
pipes: [ TodosSortPipe ]
})
管道编号:
import { Pipe } from "angular2/core";
import {Todo} from './todo';
@Pipe({
name: "sort"
})
export class TodosSortPipe {
transform(array: Array<Todo>, args: string): Array<Todo> {
array.sort((a: any, b: any) => {
if (a < b) {
return -1;
} else if (a > b) {
return 1;
} else {
return 0;
}
});
return array;
}
}
我正在尝试排序一个 Todo
数组,按属性 completed
排序。先是 todo.completed = false
,然后是 todo.complete = true
。
我不太理解 transform
方法以及如何在该方法和 sort
方法中传递参数。
什么是 args: string
论点? 什么是 a
和 b
? 它们来自哪里?