Javascript 仅当某个属性发生更改时才订阅可观察的
我需要rxjs的Javascript 仅当某个属性发生更改时才订阅可观察的,javascript,angularjs,rxjs,Javascript,Angularjs,Rxjs,我需要rxjs的subscribe方法限制某些属性更改。我试着用distinctUntilChanged来做这件事,但我觉得我遗漏了一些东西 我只想在属性data.members[]更改时订阅fire this.myService.loadData(this.data.id) .distinctUntilChanged() .subscribe(data => { this.data = data; console.log("data changed", data)
subscribe
方法限制某些属性更改。我试着用distinctUntilChanged
来做这件事,但我觉得我遗漏了一些东西
我只想在属性data.members[]
更改时订阅fire
this.myService.loadData(this.data.id)
.distinctUntilChanged()
.subscribe(data => {
this.data = data;
console.log("data changed", data);
});
如何对不同的更改做出反应?查看,我发现您应该能够通过Rx.Observable.prototype.distinctUntilChanged([keySelector],[comparer])
实现所需的功能,并使用keySelector
选择要检测其更改的属性,和比较器
参数来检测相等性
Rxjs v5具有和具有类似的功能
您可以查看测试,例如用法:[
我想从这一点上,你应该能够设置一些东西,如果没有,就把你尝试过的东西发回
.distinctUntilChanged((data)=>{return data.members;})
有效!如何检查多个数组?(成员、关系、子数组)
我希望对阵列内的更改(添加/删除的项目)作出反应 使用
angular.equals
进行深度比较
this.myService.loadData(this.data.id)
.distinctUntilChanged((data) => (data.members), (a,b) => (angular.equals(a,b))
.subscribe(data => {
this.data = data;
console.log("data changed", data);
});
有关distinctUntilChanged
的更多信息,请参阅
有关
angular.equals
的详细信息,请参阅。您是否希望对数据的不同更改做出反应。成员属性参考值?或对数据所引用的数组内容的不同更改。成员属性?我希望对数组内的更改做出反应(添加/删除的项目).distinctUntilChanged((data)=>{return data.members;})
有效!如何检查多个数组?(成员、关系、子数组)?