【发布时间】:2020-06-28 05:06:11
【问题描述】:
我想将一个对象传递给另一个组件。下面是我的方法。但是数据在路线改变时被清除。是否有任何解决方案或是否有任何其他解决方案。
在组件 1 中:
this.myService.setData(this.myData);
this.router.navigateByUrl('component2');
在役:
private myDataSubj = new Subject<MyData>();
setData(myData) {
this.myDataSubj.next(myData);
}
getData(): Observable<MyData> {
return this.myDataSubj.asObservable();
}
在组件 2 中: 在 ngOninit 中
this.myService.getData().subscribe(data => {
this.myData = data;
console.log(this.myData); // Returning Undefined.
})
我错过了什么吗?
【问题讨论】:
-
你如何声明
In-Service类(@Injectable使用了吗?)?您是否将In-Service添加到providers的NgModule?启动两个组件的顺序是什么?从您提供的代码中不清楚... -
你问的没有问题。我想要的是我想将数据解析到其他组件,即使你改变了路线,数据也应该在那里,如果你知道更好的方法,请建议.
-
服务是单例的吗?服务中有
providedIn: 'root'吗? -
您可以简单地在服务中保留一个全局变量,并将该变量保留在组件中
-
@SheenaSingla 你能写一个代码吗?
标签: angular typescript