我有一个BehaviorSubject作为SharedServices模块的一部分,该模块提供给模块的Providers部分中的AppModule,并在AppComponent中订阅它。我还在另一个组件中订阅它,该组件是另一个模块AdminModule的一部分,但我没有得到更改,除非我将它添加到AppComponent的Providers部分。为什么是这样?我想如果你把它添加到模块中的Providers部分并订阅所有订阅者都会得到更改吗?
我必须为子组件执行此操作才能获得更改。我真的很困惑。
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
providers : [ AppsSharedService] <--------
答案 0 :(得分:4)
您可能希望遵循Angular文档的指导,并将此全局提供程序移出&#34; shared&#34;模块和进入核心&#34;模块:
https://angular.io/guide/ngmodule#no-shared-module-providers
我怀疑这里发生的是服务是否创建了两次,因此一次发生的变化并未全部反映出来。