通过在Angular导航中传递ID来检索对象

时间:2020-03-22 17:18:15

标签: angular

我是新手,我自己学习角。我对将数据从一个组件传递到另一个组件感到怀疑。

在下面的代码中,我使用click方法传递ID,我有一个示例JSON对象,其中包含对象数组。假设我有3个具有不同ID的对象,并且正在使用*ngFor循环数据。现在,我使用(click)方法,如下所示传递我的ID

goToWorkOrderDetails(id): void {
    this.router.navigate(['/work-orders/work-order-details', { id }]);
 }

在下一页中,我将使用

来检索ID
this.route.params.subscribe((params: Params)=> this.user.id= this.params['id'])

有什么方法可以检索包含该id的完整异议?

1 个答案:

答案 0 :(得分:-1)

您可以使用角度服务。将对象保存在那里,并在新组件上对其进行检索。如果您想通过url发送它们,则可以使用 NavigationExtras

家庭组件

import {Router,NavigationExtras} from '@angular/router';

const navigationExtras: NavigationExtras = {
  state: {
   id:id,
   name: name,
   ....other properties of your object here
 }
};
this.router.navigate(['/work-orders/work-order-details'], navigationExtras);

newComponent

constructor(private router: Router) {
   const navigation = this.router.getCurrentNavigation();
   const state = navigation.extras.state as {
    id: string,//or whatever you want
    name: string,
   };
console.log("id: " + state.id ",name:" + state.name)
}