Я хочу отобразить некоторые элементы массива. Обновление массива не находит отражение в DOM, когда массив был отфильтрован с помощью канала, как показывает следующий код.Фильтрация NgFor в Angular2
import {Component} from 'angular2/core'
import {Pipe, PipeTransform} from 'angular2/core';
@Pipe({name: 'myPipe'})
export class MyPipe implements PipeTransform {
transform(numbers) {
return numbers.filter(n => n > 2);
}
}
@Component({
selector: 'my-app',
template: `
<button (click)="change()">Change 3 to 10</button>
<ul> <li *ngFor="#n of numbers | myPipe">{{n}}</li> </ul>
<ul> <li *ngFor="#n of numbers">{{n}}</li> </ul>
`,
pipes: [MyPipe]
})
export class App {
numbers = [1, 2, 3, 4];
change() {
this.numbers[2] = 10;
}
}
https://plnkr.co/edit/1oGW1DPgLJAJsj3vC1b1?p=preview
Это вопросы, кажется, происходит потому, что метод фильтра массива делает новый массив. Как фильтровать массив без нарушения привязки данных?