1
我在做Ionic3項目。這是一個問題。 後端:我使用了Firebase的Rxjs,這對於實時數據來說非常簡單而且很好。 前端代碼在這裏:Ionic3,Angular 2,rxjs對象分配頁面變量
我希望我的數據保持一致。所以我提供了一個服務,將數據和分配給每個頁面變量。
[.TS文件]
public dogModel = new dogModel();
constructor(
,public testService: TestService) {
this.dogModel = this.testService.dogModel;
}
[HTML文件]
<div>{{dogModel.state}}</div>
和它的作品真的很好。當數據在服務中更改時,我不知道服務數據如何重新分配給頁面變量。 和一多, 如果我改變了這樣的代碼,
this.dogModel.state = this.testService.dogModel.state;
我可以看到日誌改變業務數據,但無法看到頁面的任何變化。 有人知道嗎?我service.ts的
部分
constructor(
public db: AngularFireDatabase
) {
db.object(this.firebaseURL + '/dogState/test1234')
.subscribe((dogState) => {
Object.assign(this.dogModel, <dogModel>dogState);
console.log(this.dogModel);
});
只要組件的構造函數運行,數據就可能沒有返回。您可以使用主題訂閱服務中數據的更改。 – 0mpurdy
@ 0mpurdy - 是的,我做到了。 [Service.ts] db.object(this.firebaseURL +'/ mmumesState/test1234') .subscribe((mmumesState)=> {assign Data to object}); 但我希望我的代碼清潔,所以我只在Service中訂閱了一次。 我應該在每一頁打電話訂閱功能,我將使用數據? –
這在您發佈的代碼中沒有顯示?你能包括它嗎? – 0mpurdy