Gibt es eine Möglichkeit, die gleiche Funktionalität ohne "interval()" Teil zu tun?Verbinden Array zu Observable ohne .interval() in Angular2 Typescript
Ich möchte nur das Array zu einem Observable verbinden, und dann nur das Array aktualisieren, und das Observable zu beobachten, dass Array und reagieren.
Wenn dies eine gute Lösung ist, gibt es eine Möglichkeit zu implementieren, und wo, die .distinctUntilChanged() in diesem, so dass es keine neuen Werte ausgibt, wenn die Daten identisch sind, dann dieses "Intervall (10)" wird nicht der Flaschenhals sein. Hier
ist die Plunker: http://plnkr.co/edit/xlWSTz8gNfByTnT1REw5?p=preview
import {Component} from 'angular2/core';
import * as Rx from 'rxjs/Rx'
@Component({
selector: 'a-webapp',
template:`
<div>
<h2>{{name}}</h2>
<button (click)="addToArray()">Add</button> <button (click)="resetArray()">Reset</button>
<ul>
<li *ngFor="let item of latest$ | async">{{ item | json }}</li>
</ul>
{{ data | json }}
</div>
`
})
export class AppComponent {
data = ["one", "two", "three"]
data$: Rx.Observable<Array<string>>;
latest$: Rx.Observable<Array<string>>;
constructor() {}
ngOnInit() {
this.data$ = Rx.Observable.interval(10).concatMap(y => {
return Rx.Observable.of(this.data)
})
this.latest$ = Rx.Observable.combineLatest(this.data$, (data) => {
return data.map(d => {
return d + " is a number"
})
})
}
addToArray() {
this.data.push('more numbers')
}
resetArray() {
this.data = ["one", "two", "three"]
}
}
Wird dies in den nächsten 24 Stunden versuchen. Werde die Antwort akzeptieren, wenn funktioniert;) Vielen Dank! – Teddy
Funktioniert perfekt! ;)) Du bist der Mann! – Teddy