I'm writing a simple todo app to learn Angular 2. I noticed that using pipes break the update behavior.
I have the following template
<input type="text" placeholder="Search" #queryBox (keyup)="query=queryBox.value">
<ul class="task-list">
<task-item *ng-for="#task of tasks | filter:containsString:query" [task]="task" (onDelete)="delete($event)"></task-item>
</ul>
and when I click on the delete button, the underlying data model is changed but this change is not reflected in the UI. I have determined it's because the filter pipe doesn't get called. If I change the above line to
<task-item *ng-for="#task of tasks" [task]="task" (onDelete)="delete($event)"></task-item>
then things like add, delete works again, but obvious I don't get filtering. Why would adding pipes break the update behavior of this binding?