2017-10-15 82 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阵列中。