2
@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]DataSharing 服务时工作正常.. 我很想知道为什么?

提前致谢!

4

1 回答 1

4

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

有关更多详细信息,请参阅文档

于 2020-01-07T20:10:50.480 回答