angular - 带有 url 关键字的 Angular 路由器
问题描述
我正在尝试为以下 url 组合设置路径
- /red-cars-for-sale-fl
- /二手车出售-ca
- /新车出售-ga
- /fast-cars-for-sale-fl 等等。
所有这些 url 都应该匹配一个组件 CarSaleComponent。同样,boats-for-sale 的 URL 集应该实例化 BoatSaleComponent 等等
{ path: ':param1', component: CarSaleComponent },
{ path: ':param1', component: BoatSaleComponent },
{ path: 'contact', component: ContactComponent }
这不起作用,因为 /contact 还将匹配第一个路径并实例化 CarSaleComponent。我正在使用一种解决方法
{ path: 'cars/:param1', component: CarSaleComponent },
{ path: 'boats/:param1', component: BoatSaleComponent },
{ path: 'contact', component: ContactComponent }
是否可以根据“cars-for-sale”或“boats-for-sale”子字符串匹配路径?
解决方案
有两种方法可以做到这一点。
您可以在 URL 中传递参数来告诉销售
boat/car
。根据您显示/隐藏CarSaleComponent
/的输入BoatSaleComponent
。不好的一面是,如果您添加更多待售商品,您可能需要添加一个启用/禁用组件列表的配置。您可以为每个项目创建路由
item-for-sale
并在查询中传递必要的信息。
{ path: 'car-for-sale', component: CarSaleComponent },
{ path: 'boat-for-sale', component: BoatSaleComponent },
{ path: 'contact', component: ContactComponent }
您还可以创建一个销售模块并在用户尝试访问此特定信息时延迟加载它。您还可以为其下的不同项目创建子路由并相应地路由它们。
此外,路由匹配基于它们在从上到下的路由中定义的方式。因此,请始终以最终匹配根的方式放置它们/
。
推荐阅读
- r - 将多个文件转换为excel表格
- node.js - 使用 google drive.files.copy 时设置新文件名
- r - 是否有用于将 R 内容传递给 LaTeX 命令的 knitr 策略?
- ios - 加载 WKWebview 时,它的 nil
- ruby-on-rails - 数组在我的 Rails(3.2.11) 多选中返回第一个元素空白
- c - hrtimer 状态发生变化,并在通过用户定义的软 uart 驱动程序访问时崩溃
- vb.net - 如何使用 VB.NET 设置首选和备用 DNS 服务器
- reactjs - 为什么路由的可选参数旁边有括号
- amazon-web-services - 跟踪多主 AWS 集群中的主节点故障
- sql - 检索在 SQL 上订购商品的日期