2017-10-15 84 views
-2

我有一個角度爲2的可觀察值,我的應用的許多部分正在訂閱,但沒有獲取數據。Angular 2可觀察到當數據添加到可觀察數據時,不會向我的訂戶提供最新數據

注意:我沒有生成錯誤或控制檯錯誤。

用戶只接收有關其組件在ngOnInit部分的加載數據。

這是ngOnInit用戶的例子:

ngOnInit(): void {  
    this.service.getData$ 
     .takeUntil(this.destroyed$) 
     .subscribe(data => { 

     //This only gets hit on component load and not when the observables updated. 
     console.log(data); 
     }); 
    }; 

這是我的簡單的服務:

private _testStream = new BehaviorSubject<any>(new myTestData); 
    public getData$ = this._testStream.asObservable(); 

    updateObs(item): void { 
    this._testStream .next(item); 
    }; 

這是我的模型被更新,並被推到了觀察到的:

export class myTestData { 
    listOfData: Array<Object> = [ 
    { 
     id: "testA", 
     visible: true 
    }, 
    { 
     id: "testB", 
     visible: true 
    }  
    ] 
}; 

我希望訂閱者在推送到observable時接收新數據。 看來該服務更新可觀察到的罰款,但用戶沒有收到數據。

很奇怪。

+1

看來我的服務不是作爲提供者添加到正確的位置嗎? – AngularM

回答

0

所有不同組件使用的服務實例必須相同,這意味着您不能將其添加到每個組件的providers數組中。請將其添加到父模塊的providers陣列中。