Angular 2 OrderBy Pipe
Não consigo traduzir esse código de angualr1 para angular2, ajuda?
ng-repeat="todo in todos | orderBy: 'completed'"
Foi o que fiz depois da resposta de Thierry Templier:
modelo html:
*ngFor="#todo of todos | sort"
arquivo de componente:
@Component({
selector: 'my-app',
templateUrl: "./app/todo-list.component.html",
providers: [TodoService],
pipes: [ TodosSortPipe ]
})
arquivo de pipe:
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;
}
}
Tenho certeza de que o erro está no @Pipe, estou tentando classificar uma matriz de Todos, ordenada pela propriedade todo.completed. Primeiro todo.completed = false e depois todo todo.complete = true.
Eu sou honesto, não entendi muito bem o método de transformação e como passar os argumentos nesse método e no método de classificação.
Como, o que é o argumento args: string? aeb, o que são? de onde eles vêm?