首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >角度2可选路由参数

角度2可选路由参数
EN

Stack Overflow用户
提问于 2015-12-11 02:03:50
回答 14查看 206.3K关注 0票数 233

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

“原始异常:路径”/用户/:id?“包含"?”,这在路由配置中是不允许的。“

代码语言:javascript
复制
@RouteConfig([
{
    path: '/user/:id?',
    component: User,
    as: 'User'
}])
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2015-12-21 22:51:03

您可以定义多个带参数和不带参数的路由:

代码语言:javascript
复制
@RouteConfig([
    { path: '/user/:id', component: User, name: 'User' },
    { path: '/user', component: User, name: 'Usernew' }
])

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

代码语言:javascript
复制
constructor(params: RouteParams) {
    var paramId = params.get("id");

    if (paramId) {
        ...
    }
}

另请参阅相关的github问题:https://github.com/angular/angular/issues/3525

票数 362
EN

Stack Overflow用户

发布于 2018-03-08 02:44:50

代码语言:javascript
复制
{path: 'users', redirectTo: 'users/', pathMatch: 'full'},
{path: 'users/:userId', component: UserComponent}

这样,在添加参数时不会重新呈现组件。

票数 151
EN

Stack Overflow用户

发布于 2016-02-24 22:39:19

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

路由参数还是查询参数?

没有硬性规定。总体而言,

在以下情况下首选路由参数

  • 此值是必需的。
  • 此值是区分路由路径所必需的。

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

值为optional.

  • the和/或multi-variate.

时,值为

来自https://angular.io/guide/router#optional-route-parameters

您只需要从路由路径中取出参数即可。

代码语言:javascript
复制
@RouteConfig([
{
    path: '/user/',
    component: User,
    as: 'User'
}])
票数 52
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34208745

复制
相关文章

相似问题

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