好的可以有人请请帮我在这里我觉得我要疯了!绑定到可观察阵列
我有问题得到一个列表来更新angular2它似乎从四处张望我应该使用Observables某种?
所有听起来不错,但我有很多问题实施他们。
我需要关于如何使用可观察数组并在angular2中绑定它的帮助,以及使用可观察数组有什么好处?
比如我有一个模型的评论列表
this.comments = new Array<IComment>;
this.observableComments = Observable.from(this.comments);
// Note what is really odd with the above is typescript thinks
// the above is Observable<IComment> ??? not Observable<IComment[]>
// but when i debug it is ObservableArray with array property - ??
我有我的模板下面的div
<div *ngFor="let comment of comments | async | reverseOrder let i = index" >
好到目前为止好,但有似乎没有能力推或onNext我的可观察?!??!
我有一个叫做addComment的函数。我想要做的就是为我的observable数组添加一个值,以便更新我的UI。我没有使用任何数据服务在这里..
addComment(comment: IComment) {
this.comments.push(comment);
this.observableComments.onNext(this.comments);
// The above does not work
// neither onNext - next - push is a function on my observable array??
}
我已经做了很多的搜索,并有使用的Rx对象和behaviourSubjects,但不知道如何绑定到这些在我的UI的例子的建议。我得到这些是流,但我不明白这将如何工作与我的管道和再次订购没有这样的例子
如果我直接绑定到我的数组Angular2不检测推的变化,因为它是相同的参考。
其他建议一直没有使用observables,只是做array.concat来创建一个新的数组和一个新的参考。这对我来说似乎很难!
ObservableArrays对我来说似乎毫无意义我没有得到什么?他们当然似乎没有观察数组,允许我设置一个新的数组值或给我任何能力推入数组。
请问您的组件有onPush变化检测? Observable不能像onNext那样发出事件。您应该使用Subject或BehaviorSubject。有了Observable,你可以尝试调用'this.observableComments = Observable.from(this.comments);'在再次添加 – yurzui
之后,不使用onPush,我可以通过订阅一个事件并使用changedDetectorRef并通过改变数组的参考。但我不想了解observable和使用它们的优点 –
以下是在服务中使用BehaviorSubject的示例https://github.com/jhades/angular2-rxjs-observable-data-services/blob/master/src/state /TodoStore.ts – yurzui