Вам необходимо подписаться на this.data$
внутри компонента.
this.data$.subscribe((data) => {
//do data mutation
// assign it to a local variable, say this.data
})
Наряду с этим, если вы хотите, чтобы мутация использовалась в шаблоне, вы также можете назначить мутированные данные локальной переменной и использовать их в шаблоне.
Вот какэто выглядело бы так:
@Component({
selector: 'data',
template: `<div *ngFor="let item of mutatedData">{{item}}</div>`
})
export class DataComponent implements OnInit {
@Input()
data$: Observable<IData>;
mutatedData: IData;
constructor() {}
ngOnInit() {
this.data$.subscribe((data) => {
//do mutatation
//assign mutated data to this.mutatedData
});
}
}
Обновление: поскольку OP намеревается избежать subscribe
в component
, вот идея: Примечание: вы также можете написать собственный канал для этого, но сейчас,Учтите это:
@Component({
selector: 'data',
template: `<div *ngFor="let item of mutatedData">{{mutate(item)}}</div>`
})
export class DataComponent implements OnInit {
@Input()
data$: Observable<IData>;
mutate(data: any): any{
//data mutation
//return updated data
}
}