是否可以在没有点击事件及其方法的情况下使用服务将数据从一个组件传递到另一个组件?
Posted
技术标签:
【中文标题】是否可以在没有点击事件及其方法的情况下使用服务将数据从一个组件传递到另一个组件?【英文标题】:is it possible to pass data from one component to another using service without click event and it's method? 【发布时间】:2021-12-21 12:27:33 【问题描述】:希望一个组件在页面加载时从另一个组件获取数据
<app-header></app-header>
<button (click)="sendProductData()">send data</button>
<router-outlet></router-outlet>
【问题讨论】:
您为什么反对使用服务?这将是服务的教科书用例:) ...除非我们谈论的是父子交互(不是路由器插座)。 我,我正在使用服务,但我创建了按钮。当我按下这个按钮时,数据传递给服务和其他组件订阅它。我希望服务无需按任何按钮即可获取该数据。当我重新加载页面时,我希望一个组件自动获取此数据 哦,是的,对不起,是个白痴,误读了标题! 您尝试过使用 BehaviorSubject 吗? 你可能想在 ngOnInit() 中调用“sendProductsData()”方法,不是吗? 【参考方案1】:这里有两种情况:
-
加载这两个组件时,您的数据已经加载到您的服务中。在这种情况下,只需将订阅放在
ngOnInit
钩子中的两个组件中并获取数据。
只有在单击按钮时才会获取您的数据,在这种情况下,订阅会像您现在所做的那样在单击时加载。
考虑应用生命周期中的数据可用性以及组件进入游戏的时间!
【讨论】:
以上是关于是否可以在没有点击事件及其方法的情况下使用服务将数据从一个组件传递到另一个组件?的主要内容,如果未能解决你的问题,请参考以下文章