Angular 2 OrderPor Pipe

No puedo traducir este código de angualr1 a angular2, ¿alguna ayuda?

ng-repeat="todo in todos | orderBy: 'completed'"

Esto es lo que he hecho siguiendo la respuesta de Thierry Templier:

plantilla html:

*ngFor="#todo of todos | sort"

archivo de componente:

@Component({
    selector: 'my-app',
    templateUrl: "./app/todo-list.component.html",
    providers: [TodoService],
    pipes: [ TodosSortPipe ]

})

archivo de tubería:

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;
  }
}

Estoy seguro de que el error está en @Pipe, estoy tratando de ordenar una matriz de Todos, ordenada por la propiedad todo.completed. Primero todo.completed = false y luego todo.complete = true.

Soy honesto, no entendí muy bien el método de transformación y cómo pasar los argumentos en ese método y en el método de clasificación.

Como, ¿cuál es el argumento args: string? a y b, ¿qué son? ¿De dónde vienen?

Respuestas a la pregunta(14)

Su respuesta a la pregunta