我正在尝试将变量的内容发送到其他组件,以便可以在其他组件中使用该值(两个组件是不同的页面,彼此不相关,但我不需要在任何页面上显示变量内容,我只需要使用其他typescript组件上的变量内容)。我不能让它在任何教程中正常工作,我只是不我不知道该怎么办了。
This is the file layout (need to send variable content from week component to day component)
以下代码位于p1_week-chart.component.ts中:
else if (chart.data.labels[activeEls[0].index] == "Wednesday") {
this.dayClicked = new Date(this.today);
this.dayClicked.setDate(this.dayClicked.getDate() + 2);
console.log(this.dayClicked);
//want to send content of this.dayClicked to other component (p1_day-chart.component.ts)
额外的信息:我不需要在html中的任何东西,我只需要这部分的 typescript
非常感谢帮助!
(我尝试了很多不同的解决方案,包括BehaviorSubject,但我就是无法让它发送this.dayClicked to the p1_day-chart. component. ts的内容。我看到其他一些人在这里问了同样的问题,但我看了很多,我仍然无法让它工作。)
3条答案
按热度按时间ar7v8xwq1#
如果组件是不相关的,一个简单的方法就是将变量从一个组件发送到另一个组件。为此,您需要一个服务,如:
在发出变量的组件中:
onUpdateEnv(“点击的日期”,点击的日期);
在需要接收变量的组件中:
subsVar =这个. sharedParams.invokeFirstComponentFunction .subscribe((发出的)=〉{如果(发出的[0] ==“点击日期”){这个.点击日期接收的=发出的[1];} });
ubbxdtey2#
基于你所说的问题@s_frix,
需要接收的组件当前具有以下内容:
获取错误:"属性'dayClickedReceived'不存在..."如果我创建了它并在控制台记录它,当我切换到需要接收的页面时,它会返回为"未定义"。(当我发送事件时,我确实直接获得了正确的控制台日志,但这没有用,因为我需要在其他页面上使用它,当我转到该页面时,dayClickedReceived再次未定义)
基本上,当我在需要发送变量并使其运行的页面上时,需要发生什么,然后我单击另一个页面(需要接收变量),在那里我想使用变量的内容
bxgwgixi3#
我是这样让它工作的:
谢谢大家的回答,真的很感激!:)