Chciałbym obejrzeć obiekt/tablicę, które będą edytowane przez usługę lub procedurę kontrolera. Myślałem, że obserwowalne może oglądać obiekt/tablicę.Angular2 obserwuje zmiany obiektu/macierzy (Angular2 final> = 2.1.1)
Moja implementacja nie reagują na zmiany pozycji:
private data : Observable<Array<any>>;
private dataObserver: Observer<Array<any>>;
private sub : Subscription;
private items: <Array<any>>;
ngOnInit() {
this.items = itemService.getItems();
this.data = new Observable<Array<any>>(observer =>{
this.dataObserver = observer;
});
this.data.subscribe(
x => console.log('onNext: %s', x),
e => console.log('onError: %s', e),
() => console.log('onCompleted')
);
this.dataObserver.next(this.items);
}
private start(){
//change values of the array in an interval
let loop = Observable.interval(250)
let i=0;
self.sub = loop.subscribe(() => {
if(self.items[0]){
self.items[0].id= i;
if(i<100) i++;
else i=1;
}
})
}
observalbes subsciption nie reaguje na zmiany układu elementów. Wyzwala tylko na następnej mecie. Z drugiej strony jest to zbyt kłopotliwe w przypadku prostej metody oglądania.
Co oferuje nam kątomierz 2 do oglądania zmian, ponieważ $ scope. $ Watch zrobił w kanciastym-1?
Czy masz prosty przykład na to, jak można oglądać tablicę/obiekt? Jest to jedna linijka kodu w Angular1, jeśli jest to tak skomplikowane, jak widzę w NgClass, to jest przepracowane. – marcel
Angular2 ma niewiele wspólnego z Angular1. Zrobili 2 pełne przepisanie, aby dostać się tam, gdzie teraz są, i nie bez powodu. Angular2 dąży do maksymalnej wydajności. Są rzeczy, które są lepsze niż w Angular1, a inne nie. Rzeczy, które nie są lepsze z jednej perspektywy, zwykle przynoszą inne korzyści. –
Obserwowanie obiektu jako podstawowej funkcji. To znaczy, że w Angular2 nie jest to możliwe? Jaką strategię mam teraz zastosować w angular2? – marcel