我通过http通话提供服务:
我使用nginit初始化组件,然后离开视图,转到详细信息视图,并调用发布服务,我的组件返回null并中断应用程序,我必须重新加载页面。
在服务和组件中使用可观察对象是否有最佳实践?
我已经尝试研究多播,但是我还没有发现与我的问题有关的任何东西。
服务电话
getProducts() {
this.headers = this.headers.set('Content-Type', 'application/json')
.set('id', 1)
.set('active', '1')
.set('token', 1);
return this.http.get(this.env + 'Products.json', { headers: this.headers });
}
我通常希望我的响应数组像在ngoninit上一样,但是会变为null。
更新
通过在组件装饰器上声明我的服务来使其正常工作
@Component({
selector: 'app-deal-detail',
templateUrl: './deal-detail.component.html',
styleUrls: ['./deal-detail.component.scss'],
providers: [ AService, BService, CService ]
})
答案 0 :(得分:0)
我通过为组件提供provider属性解决了我的问题,issue-with-rxjs-behaviorsubjects-subscriber-not-being-notified-of-value-change引用了我
显然Angular将服务读取为单例。