有沒有辦法使用RxJS來跟蹤特定對象的變化?基於我的研究,過去有一種稱爲Observable.ofObjectChanges()的方法來創建跟蹤對象更改的可觀察事件,但看起來像已被棄用。使用RxJS跟蹤對象中的更改?
我已經嘗試過使用Object.from和Object.of,但在更新特定對象時都沒有觸發。
感謝您的任何見解!
有沒有辦法使用RxJS來跟蹤特定對象的變化?基於我的研究,過去有一種稱爲Observable.ofObjectChanges()的方法來創建跟蹤對象更改的可觀察事件,但看起來像已被棄用。使用RxJS跟蹤對象中的更改?
我已經嘗試過使用Object.from和Object.of,但在更新特定對象時都沒有觸發。
感謝您的任何見解!
裹BehaviourSubject與可觀察到的和聽的觀測。
private _aStringArry: BehaviorSubject<string[]> = new BehaviorSubject(null);
public aStringArray: Observable<string[]> = this._aStringArry.asObservable();
setStringArray(stringArray: string[]): void {
this._aStringArry.next(facets);
}
訂閱aStringArray更改。我建議這樣做,因爲在某些情況下,BehaviorSubjects會拋出Promise拒絕,除非包含在Observables中。
您可以爲要監視的屬性添加自定義設置器,通知RxJS BehaviorSubject,然後訂閱該主題以偵聽更改。
事情是這樣的:
import {BehaviorSubject} from 'rxjs/BehaviorSubject';
class MyClass
{
changesSubject : BehaviorSubject<any> = new BehaviorSubject();
_myprop : any;
public set myprop(val : any) {
this.changesSubject.next(val);
this._myprop = val;
}
}
let myobj = new MyClass();
myobj.changesSubject.subscribe((val) => console.log(val));
myobj.myprop = "this should trigger a change detection";
你能提供更多關於你試圖解決這個問題的上下文嗎? – jonrsharpe
你想保留更改歷史嗎?你只想聽聽變化嗎?您需要添加更多關於您的用例的詳細信息 –
@jonrsharpe Sure - 我在Angular 2中工作以填充數據綁定到我的組件的父對象的屬性的模板。當這個對象發生變化時,由於父級的變化,我想在子組件中檢測Typescript中的變化,以便我可以執行一些相關的功能。我希望能夠使用Observable.subscribe方法來捕獲這些更新,但我只是碰壁。感謝您提供的任何指導或見解。 –