具有多个可选参数的路径

时间:2014-08-07 09:00:51

标签: angularjs angular-ui-router

我有一个角度控制器,可以显示具有过滤能力的数据。 现在我需要几个可选的过滤参数。例如:

http://esample.org/inquiries/
http://esample.org/inquiries/3/
http://esample.org/inquiries/3/answered
http://esample.org/inquiries/answered
  • 第一个网址会显示所有查询,
  • 第二次调查住宿#1,
  • 第三个人回答了对住宿#1和
  • 的询问
  • 第四个人都回答了问题。

我可以在ui-router中定义一个匹配所有三个网址的网址吗? 如何定义多个可选的附加参数?

我尝试将斜杠添加为可选参数,但它不匹配。

.state('inquiries', {
    url: "/inquiries/{accommodationId:[0-9]*}{slash:[/]*}{inquiriesType:[a-z]*}",
    templateUrl: "views/inquiries.html",
    controller: "InquiriesController",
    [...]

1 个答案:

答案 0 :(得分:4)

plunker有一点点调整后的网址定义:

url: "/inquiries/{accommodationId:[0-9]*}{slash:[/]?}{inquiriesType:[a-z]*}",

所有这些(使用'#'此处)正在运作:

<a href="#/inquiries/">
<a href="#/inquiries/3/">
<a href="#/inquiries/3/answered">
<a href="#/inquiries/answered">

查看行动here