Angular 4共享服务可观察行为主题

时间:2017-11-03 15:13:43

标签: angular rxjs

我有一个BehaviorSubject作为SharedServices模块的一部分,该模块提供给模块的Providers部分中的AppModule,并在AppComponent中订阅它。我还在另一个组件中订阅它,该组件是另一个模块AdminModule的一部分,但我没有得到更改,除非我将它添加到AppComponent的Providers部分。为什么是这样?我想如果你把它添加到模块中的Providers部分并订阅所有订阅者都会得到更改吗?

我必须为子组件执行此操作才能获得更改。我真的很困惑。

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
  providers : [ AppsSharedService]    <--------

1 个答案:

答案 0 :(得分:4)

您可能希望遵循Angular文档的指导,并将此全局提供程序移出&#34; shared&#34;模块和进入核心&#34;模块:

https://angular.io/guide/ngmodule#no-shared-module-providers

我怀疑这里发生的是服务是否创建了两次,因此一次发生的变化并未全部反映出来。

相关问题