为 Angular UI 路由器使用多个正则表达式参数
Using multiple regexp parameter for Angular UI Router
我正在为我的项目使用 AnglarJs 和 Angular UI 路由器。
我正在为我的路线使用参数,例如:
url: '/content/:categoryId/:categoryType'
但是我在使用 url 时遇到问题:
url: '/content/detail/:contentId'
好像Angular UI 路由器不能识别这两个的区别。
然后我决定对所有这些都使用正则表达式参数
url: '/content/{categoryId:int}/{categoryType:int}'
url: '/content/detail/{contentId:int}'
第二个url可以,但是Angular UI当我使用ui-sref:
时,路由器无法识别第一个url
<a ui-sref="firstUrl({categoryId: 1, categoryType: 2})">Anchor</a>
Angular UI 路由器是否只支持一个正则表达式参数?
这里的问题在于 UI-路由器如何处于 finding/resolving url
的状态。它使用:
- 状态定义顺序
- 使用第一次匹配
这实际上就是问题所在,因为第一个 url 模式:
url: '/content/{categoryId:int}/{categoryType:int}'
绝对适合url提供的这个
url: '/content/detail/{contentId:int}'
这些情况的解决方法比较简单。更改状态定义的顺序。越精准越靠前,动态越靠后
我正在为我的项目使用 AnglarJs 和 Angular UI 路由器。 我正在为我的路线使用参数,例如:
url: '/content/:categoryId/:categoryType'
但是我在使用 url 时遇到问题:
url: '/content/detail/:contentId'
好像Angular UI 路由器不能识别这两个的区别。 然后我决定对所有这些都使用正则表达式参数
url: '/content/{categoryId:int}/{categoryType:int}'
url: '/content/detail/{contentId:int}'
第二个url可以,但是Angular UI当我使用ui-sref:
时,路由器无法识别第一个url<a ui-sref="firstUrl({categoryId: 1, categoryType: 2})">Anchor</a>
Angular UI 路由器是否只支持一个正则表达式参数?
这里的问题在于 UI-路由器如何处于 finding/resolving url
的状态。它使用:
- 状态定义顺序
- 使用第一次匹配
这实际上就是问题所在,因为第一个 url 模式:
url: '/content/{categoryId:int}/{categoryType:int}'
绝对适合url提供的这个
url: '/content/detail/{contentId:int}'
这些情况的解决方法比较简单。更改状态定义的顺序。越精准越靠前,动态越靠后