How to get all route params/data

前端 未结 6 562
执念已碎
执念已碎 2020-12-24 07:20

Given a route config

{
   path: \'/root/:rootId\',
   children: [{
       path: \'/child1/:child1Id\',
       children: [{
           path: \'/child2/:child2         


        
6条回答
  •  Happy的楠姐
    2020-12-24 08:08

    As of Angular 5.2, you can do Router configuration to inherit all params to child states. See this commit if interested in the gory details, but here's how it's working for me:

    Wherever you have your call to RouterModule.forRoot(), include a configuration object with the inheritance strategy set to always (default is emptyOnly):

    import {RouterModule, ExtraOptions} from "@angular/router";
    
    export const routingConfiguration: ExtraOptions = {
      paramsInheritanceStrategy: 'always'
    };
    
    export const Routing = RouterModule.forRoot(routes, routingConfiguration);
    

    Now when you're in a child component looking at a ActivatedRoute, ancestors' params appear there (e.g. activatedRoute.params) rather than something messy like activatedRoute.parent.parent.parent.params. You could access the value directly (e.g. activatedRoute.params.value.userId) or subscribe via activatedRoute.params.subscribe(...).

提交回复
热议问题