在ui-router中使用类型化的可选路由参数

时间:2016-11-23 17:16:47

标签: angularjs angular-ui-router

我正在尝试使用可选的整数路由参数定义单个状态。

我已在我的应用程序中定义了以下状态

$stateProvider.state('configuration', {
  stateUrl: '/configuration/{id:int}',
  template: '<div></div>'
});

这适用于所有具有id的路由,例如/configuration/1,但事实并非如此 为没有id的路线工作,例如/configuration/

如果我删除了类型定义,如下所示,那么路径在有或没有id 的情况下工作,但我最终得到string id而不是{{1 }}

number

是否可以定义可选的类型化路由参数?

2 个答案:

答案 0 :(得分:1)

我设法通过使用params选项来实现这一点。

$stateProvider.state('configuration', {
  stateUrl: '/configuration/{id:int}',
  params: { id: { value: null, squash: true } },
  template: '<div></div>'
});

答案 1 :(得分:0)

您可以使用&#39;?&#39;

使参数可选

请尝试以下

$stateProvider.state('configuration', {
    stateUrl: '/configuration/:id?',
    template: '<div></div>'
});