angular - 为什么组件中的 ', providers: [TravelService] ' 会阻止 RXJS 行为主体跨组件共享数据?

标签 angular rxjs behaviorsubject angular-providers angular2-providers

@Component({
  selector: 'app-overview-travel',
  templateUrl: './overview-travel.component.html',
  styleUrls: ['./overview-travel.component.scss'],
  providers: [TravelService]
})

上面的代码阻止了我的共享数据服务(使用 RXJS 的行为主题)中的数据被正确共享。

@Component({
  selector: 'app-overview-travel',
  templateUrl: './overview-travel.component.html',
  styleUrls: ['./overview-travel.component.scss']
})

但是,当我删除providers:[TravelService]时,数据共享服务工作正常..我很想知道为什么?

提前致谢!

最佳答案

您的第一个版本会阻止数据共享,因为您正在为组件及其子组件提供 TravelService 的新实例。因此,每个 OverviewTravel 组件都有自己的 TravelService 实例,其他组件无法访问该实例。

有关更多详细信息,请参阅docs .

关于angular - 为什么组件中的 ', providers: [TravelService] ' 会阻止 RXJS 行为主体跨组件共享数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59635376/

相关文章:

javascript - 如何获取 RxJS Subject 或 Observable 的当前值?

javascript - Angular8 - 无法迭代对象

启用 Ivy 的 Angular 库无法加载

angular - 如何将窗口注入(inject)到服务中?

javascript - 展平嵌套的 Observable

Angular 7 : Sorting Mat-Table with data from service as a MatTableDataSource

Angular2 2.0.0-beta.9 给出构建错误

javascript - 为什么 ng-container 显示我的 td 标签和模板元素不显示我的 td 标签?

angular - 如何在 Angular 2 中使用 getter 和 setter 实现 BehaviorSubject

javascript - BehaviorSubject 与 Observable?