Angular 如何将单击行的数据从一个组件传递到另一个组件,而不传递到url

Angular 如何将单击行的数据从一个组件传递到另一个组件,而不传递到url,angular,Angular,我有一张垫子桌子。单击任何一行,我都可以像这样控制该行的所有信息: { sid: "105", vid: "2", serviceName: "Chicken Tikka", serviceDescription: "Non Veg Dish", createdOn: "2019-05-21 13:08:43.124354" } 我想传递到另一个组件中,并将其存储在变量中 下面是我的代码: services.component.html 经过研究,我得到了答案: 1) 首先,我们必须在服

我有一张垫子桌子。单击任何一行,我都可以像这样控制该行的所有信息:

{
sid: "105", 
vid: "2", 
serviceName: "Chicken Tikka",
serviceDescription: "Non Veg Dish", 
createdOn: "2019-05-21 13:08:43.124354"
}
我想传递到另一个组件中,并将其存储在变量中

下面是我的代码:

services.component.html


经过研究,我得到了答案:

1) 首先,我们必须在服务中创建类似“dataRow”的变量。 2) 在我们的父组件中

displayData(row,sid:any)
  {
   // console.log(row);    
    this.apiService.dataRow=row;
   this.router.navigate(["/vendor-list/vendor/a/services/a/details/",sid]);
  }
dataRow1:any;
  ngOnInit() {
    this.dataRow1=this.apiService.dataRow;
    console.log(this.dataRow1.serviceName);
  }
3) 子组件中的

displayData(row,sid:any)
  {
   // console.log(row);    
    this.apiService.dataRow=row;
   this.router.navigate(["/vendor-list/vendor/a/services/a/details/",sid]);
  }
dataRow1:any;
  ngOnInit() {
    this.dataRow1=this.apiService.dataRow;
    console.log(this.dataRow1.serviceName);
  }

有一些方法可以解决您的问题,我认为使用服务是解决问题的好方法。 请看这里

要存储数据,请执行以下操作: 在全局范围内创建一个变量,如=>data:string; 当您获得数据时,type=>this.data=api.data,数据将存储在组件中 要在所有组件中使用数据,您需要将其保存在服务中