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

角度 2 可选路由参数

汪典
2023-03-14

是否可以在 Angular 2 路由中具有可选的路由参数?我在RouteConfig中尝试了Angular 1.x语法,但收到以下错误:

“原始异常:路径“/ user /: id ?“包含”?

@RouteConfig([
{
    path: '/user/:id?',
    component: User,
    as: 'User'
}])

共有3个答案

靳高明
2023-03-14

当信息是可选的时,建议使用查询参数。

路由参数还是查询参数?

没有一成不变的规则。一般来说,

选择路由参数时:

  • 该值是必需的
  • 该值对于区分一条路由路径和另一条路由是必要的

在以下情况下首选查询参数

    <李>的值是可选的。李< / ><

从https://angular.io/guide/router optional-rout

你只需要从路径路径中取出参数。

@RouteConfig([
{
    path: '/user/',
    component: User,
    as: 'User'
}])
卫英悟
2023-03-14
{path: 'users', redirectTo: 'users/', pathMatch: 'full'},
{path: 'users/:userId', component: UserComponent}

这样,添加参数时不会重新渲染组件。

上官扬
2023-03-14

您可以定义带或不带参数的多条路线:

@RouteConfig([
    { path: '/user/:id', component: User, name: 'User' },
    { path: '/user', component: User, name: 'Usernew' }
])

并处理组件中的可选参数:

constructor(params: RouteParams) {
    var paramId = params.get("id");

    if (paramId) {
        ...
    }
}

参见相关github问题:https://github。

 类似资料:
  • 所以我有一些路线,比如<code>/category/tech</code>和<code</categority/tech/new<code>和<code>/category/tech/old</code>等等 他们都使用 或者我必须分别定义它们,就像

  • 我有一个实现,其中父组件希望通过使用子组件上可用的< code>@Input参数将某些数据传递给子组件。然而,这种数据传输是可选的,父节点可能会也可能不会按照要求传递它。一个组件中可以有可选的输入参数吗?我在下面描述了一个场景:

  • 例如,在具有分页列表的路由上,网址可能如下所示,表示我们已加载第二个网页: 使用指令和来传递查询参数。例如: 或者,我们可以使用服务通过JS跳转: 读取查询参数 See Official Documentation on Query Parameters

  • 有没有一种干净的方法可以将当前可选查询参数与模板中链接上的附加可选查询参数合并? 当前URL:< code >/search;brand=Trek 所需的转到链接:(startCount 将递增) 我知道Angular支持合并普通查询参数的功能(https://angular.io/docs/ts/latest/api/router/index/RouterLink-directive.html)

  • 我正在研究这个angular2项目,其中我使用从一个组件导航到另一个组件。 有两个组件。i、 例如, 我想从PagesComponent导航到DesignerComponent。 到目前为止其路由正确但我需要通过 我尝试使用RouteParams,但它的获取页面对象。 下面是我的代码: 页面.组件. ts 在html中,我正在执行以下操作: 在 DesignerComponent 构造函数中,我完

  • 问题内容: Angular 2路线中是否可以有一个可选的路线参数?我在RouteConfig中尝试了Angular 1.x语法,但收到以下错误: ““原始例外:路径“ / user /:id?”包含路由配置中不允许的“?”。” 问题答案: 您可以使用和不使用参数来定义多个路由: 并处理组件中的可选参数: