首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置嵌套工艺路线

如何设置嵌套工艺路线
EN

Stack Overflow用户
提问于 2018-02-05 10:11:46
回答 1查看 43关注 0票数 0

我正在调用一个API,我得到了嵌套的页面。我似乎无法理解如何创建路由。

对于我理解的页面,您可以这样做:

代码语言:javascript
复制
   {
      path: ':id',
   }

当页面是嵌套的,而我不知道哪个页面将嵌套在哪个页面下时,如何路由这些页面?我所关心的就是页面被渲染。

代码语言:javascript
复制
   {
      path: 'id/:id',
   }

例如:

代码语言:javascript
复制
{ id: 1, url: 'food/pizas'}
{ id: 2, url: 'ux/size-shape'}
{ id: 3, url: 'book/house-of-card'}
{ id: 3, url: 'something/other-page'}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-05 21:39:42

您应该这样创建您的路由:

代码语言:javascript
复制
{
      path: '/prefix/:category/:id',
      loadChildren: './page/page.module#PageModule',
      canActivate: [
            fromGuards.PrivatePagesGuard,
      ],
      resolve: {
         content: MyDynamicResolver
      }
   }

然后在您的解析器中,您将可以访问类别和id参数,因此您可以使用服务来获取资源。

代码语言:javascript
复制
@Injectable()
export class MyDynamicResolver implements Resolve<any> {
    constructor(private http: HttpClient) {}

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<PageCMS> {
        const category = route.paramMap.get('category');
        const id = route.paramMap.get('id');

        return <fetch your content from http or service here>;
    }
}

您将能够通过ActivatedRoute的数据在组件中访问它

代码语言:javascript
复制
constructor(private route: ActivatedRoute) {}

ngOnInit() {
    this.content = this.route.snapshot.data['content'];
}

"/prefix“可以是任何东西,其唯一目的是避免创建可以匹配任何url的过于通用的路由。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48614995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档