动态路线

时间:2017-11-17 12:01:54

标签: angular angular-router

我正在寻找一个解决方案,在Angular(5 +)的网址中重复部分。

类似于商店类别和产品。

Ids真的是UUID,但为了简洁起见,我将在这里使用整数。

让我们说:

  • 电视(分类,身份证号码:2)
    • 三星(分类,身份证号码:3)
      • 部分电视(产品,身份证号码:1)
  • 个人设备(类别,ID:4)
    • 手机(类别,身份证号码:5)
      • 三星(分类,身份证号码:7)
        • 部分手机(产品,身份证号码:2)

我想构建以下网址。

/TV/(类别列表页面)
/TV/Samsung/(类别列表页面)
/TV/Samsung/Some TV-1(产品浏览页面)
/Personal Devices/(类别列表页面)
/Personal Devices/Mobile Phones/(类别列表页面)
/Personal Devices/Mobile Phones/Samsung/(类别列表页面)
/Personal Devices/Mobile Phones/Samsung/Some Phone-2(产品视图页面)

我可以获取所有产品类别,并使用parentId引用将它们排列到树中。注意三星只是一个与另一个名称相同的类别。

这里棘手的部分是,在我从服务器获取类别之前,我不知道其中的类别深度或产品位置。

不,像/:product-:product-id这样的路线不是一种选择。

所以路线可能是 /:categoryName/ /:categoryName/:categoryName/ /:categoryName/:productName-:productId

或者用正则表达式解释:

  • n次CategoryComponent的类别名称
  • n次categoryName和productName& ProductComponent的ID

/(:categoryName/)+ for CategoryComponent /:categoryName/(:categoryName/)*:productName-:productId for ProductComponent

自定义路由matcher是ProductComponent的一个不错的选项,其中找不到保护/解析检查但是如何处理这些嵌套类别?

如何通过使用自定义匹配器来处理这个问题,还是我可以使用其他东西?

0 个答案:

没有答案