У меня есть класс:Фильтра массив объектов с трубой Угловой 2
export class Todo {
public id: number;
public name: string;
public isCompleted: boolean;
public dateCreated: Date;
public userName: string;
}
Служба:
getTodos(): Observable<Todo[]> {
return this.http.get(this.todosUrl)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
return body || { };
}
В моем компоненте:
getTodos(){
this.todoService.getTodos()
.subscribe(
todos => this.todos = todos,
error => this.errorMessage = <any>error
);
}
и HTML-файл:
<div class="ui large selection animated divided list">
<a *ngFor="let todo of (todos | todoFilter:false)" class="item">
<div class="right floated content">
<div class="ui vertical animated negative button" tabindex="0">
<div class="hidden content">Delete</div>
<div class="visible content">
<i class="fa fa-trash" aria-hidden="true"></i>
</div>
</div>
</div>
<i class="minus square outline icon"></i>
<div class="content">
<div class="header">{{todo.name}}</div>
<div class="description">{{todo.dateCreated | date:"MMM-dd-yyyy"}}</div>
</div>
</a>
</div>
Проблема в том, что когда я пытаюсь использовать этот канал для фильтрации завершенных todos, я продолжаю получать сообщение об ошибке «Не могу прочитать фильтр свойств» неопределенного. Я сделал что-то неправильно или есть способы отфильтровать его, не используя трубку? Моя труба:
transform(allTodos: Todo[], args?: boolean){
if (allTodos === null) {
return null;
}
return allTodos.filter(todo => todo.isCompleted);
}
спасибо.
Спасибо, мой код начал работать! –
Мое удовольствие, рад, что у вас это работает. –