将路由参数传递给组件

Posted

技术标签:

【中文标题】将路由参数传递给组件【英文标题】:Pass router paramters to component 【发布时间】:2020-02-06 04:39:26 【问题描述】:

在我的 Angular 网站的 mainComponent 中,我以这种方式读取了 url 参数:

  constructor(private activatedRoute: ActivatedRoute) 

ngOnInit() 
   this.activatedRoute.params.subscribe(params => 
   const id = params['id'];
   console.log(id);
);
  

这是我设置路由的方式:

const routes: Routes = [
 path: 'contatti', component: ContattiComponent ,
 path: 'main/:id', component: MainComponent 
];

如何将“id”传递给contactComponent?

【问题讨论】:

【参考方案1】:

如果我理解正确,从您的路由中读取路由器参数可以这样完成:

constructor( private router: Router)


someId: any;


ngOnInit()
  this.route.params
        .subscribe( (data: any) => this.someId = data.id //<-- here is your id);

    

更新

关于您的组件结构的信息很少。因此,让我们假设您的主要组件包含其他组件的模板

然后通过您的模板,您可以将 id 传递给其他组件:

<contatti-component
 [myId]="someId">
</contatti-component>

【讨论】:

不,我想将 ManinComponent 中读取的参数从 ManinComponent 传递给 ContactComponent @Francesco 让我再次咬紧牙关......我希望这次我猜对了你需要什么 不,主组件不包含ContactComponent,它们不相关 @dalarzo 我不能像全局变量一样存储“id”然后从联系人组件中读取它吗?

以上是关于将路由参数传递给组件的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2:如何将路由参数传递给子路由?

通过路由器将查询参数传递给vue组件

使用颤振将多个参数传递给命名路由

axios 将参数传递给 laravel 路由

如何将 vue.js 值作为参数传递给刀片中的路由

ReactJS:从 rails 传递参数以将路由器反应到组件