当前位置: 首页 > 知识库问答 >
问题:

如何在角组件路由器中使用参数定义默认路由?

章威
2023-03-14

我想在我的子组件中有一个默认路由(使用useAsDefault:true设置),并自动将参数传递给它。我在文档中找不到如何做到这一点。我有一个具有以下路由的父组件:

$routeConfig = [
    { path: '/employees/...', component: 'employeesComponent', name: 'Employees'}
]

以及子组件,其具有:

$routeConfig = [
    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group', useAsDefault: true}
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'}
]

这当然会失败:“组”的路由生成器未包含在传递的参数中。我无法弄清楚如何将一些默认参数传递给第一个路由。我确实通过创建另一个没有参数的路由并将其用作默认值来启动它:

{ path: '/all', component: 'employeeListComponent', name: 'All', useAsDefault: true}

但这当然并不理想。到目前为止,我还没有找到比使用不带参数的路由,然后使用一些默认参数立即重定向更好的方法。难道没有更好的办法吗?

共有2个答案

王航
2023-03-14

据我所知,这是不支持的。您可以有一个带参数和不带参数的路由,然后在 GroupDefault 组件中,只需导航到“组”

$routeConfig = [
    { path: '/group', component: 'employeeListComponentDefault', name: 'GroupDefault', useAsDefault: true}

    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group'},
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'}
]

另请参见

  • 路由angular2时的可选参数
  • 角度2可选路线参数
邴修远
2023-03-14

所以我用下面的方法解决了我的问题:我添加了一个没有参数的默认路由,并立即从< code>$routerOnActivate重定向

public $routeConfig = [
    { path: '/', component: 'employeeListComponent', name: 'GroupRedirect', useAsDefault: true},    
    { path: '/:group/:filter', component: 'employeeListComponent', name: 'Group'}
    { path: '/details/:employeeId/...', component: 'profileComponent', name: 'EmployeeProfile'},
]
public $routerOnReuse(route) {
  if (!route.params.group) {
    this.$router.navigate(['Group', { group: 'status', filter: 'active' }]);
  }
}
 类似资料:
  • 问题内容: 角度ui路由器的示例演示在起始页面具有以下链接: “ ui-router”的完整网址为或 “关于”的完整网址为或 当我使用durandalJS时,存在一个限制,即默认URL只是“ /”,不能有“ / ui-router”。 Angular ui路由器插件有相同的限制吗? 问题答案: 请参阅此处,默认路由有一个“其他”选项。

  • 我希望有一个图像控制器,并允许单endpoint,例如: /图像/上载 这是我目前的做法,但这是正确的做法吗?是否存在某种:none关键字来禁用默认路由?或者我不应该使用资源,用其他的方法去做?

  • 将路由链接到参数 显示特定产品详细信息的组件的路由需要该产品ID的路由参数。我们可以使用以下实现: 注意:product-details路由的路径中的 ,它将参数放在路径中。例如,要查看ID为5的产品的产品详细信息页面,必须使用以下URL:localhost:3000/product-details/5 注意,指令传递一个数组,该数组指定路径和路由参数。或者,我们可以使用JS跳转: Product

  • 英文原文: http://emberjs.com/guides/routing/defining-your-routes/ 当启动你的应用时,路由器会负责展示模板,载入数据,以及设置应用状态等任务。 这些都是通过将当前的URL与你定义的路由进行匹配来实现的。 1 2 3 4 App.Router.map(function() { this.route("about", { path: "/a

  • 我正在使用库在我的Spring启动应用程序中显示摇摆不定的UI API文档 http://localhost:8080/swagger-ui.html。 简而言之,这个问题是:如何使用springdoc openapi webflux ui显示应用程序API文档? 我找到了原因

  • 使用redux和反应路由器,我想访问路由指定的组件以外的组件上的路由参数。 我已经对react-router、redux和react-router-redux进行了如下设置,我想从我的redux存储访问reportId参数。 我已经尝试连接react-redux路由器来存储路由状态,但是我发现除了活动路由的完整路径之外,redux内部没有任何有用的存储。这让我可以选择从redux中的路径解析出re