AngularJs - 可以只通过精确匹配路由吗?
AngularJs - Route by exact match only is possible?
在我的应用程序中,我想完全匹配 url
。如果 url
不完全匹配,我需要重定向到 defualt as '`.
目前我需要测试:
localhost:3000/sn=1234 or localhost:3000/sn=abc123 or localhost:3000/sn=abc123
这意味着,至少 sn=
应该与 values
一起出现,无论是按数字还是字母或两者混合。
目前我的state
是这样的:
.state('serialCreateCase', {
url: '^/sn={serialNumber}',
templateUrl:'app/createCase/create-case.html',
controller: 'createCaseController as ctrl'
})
但它适用于:localhost:3000/sn=, localhost:300/sn
- 如何防止这种情况?并匹配所需的值?
提前致谢。
您可以对状态参数使用正则表达式限定符。例如
url: '/sn={serialNumber:[a-z0-9]+}'
见https://ui-router.github.io/docs/0.3.1/#/api/ui.router.util.type:UrlMatcher
注意: 我删除了您 URL 上的 ^
前缀。我见过的文档都不支持这种格式。
在我的应用程序中,我想完全匹配 url
。如果 url
不完全匹配,我需要重定向到 defualt as '`.
目前我需要测试:
localhost:3000/sn=1234 or localhost:3000/sn=abc123 or localhost:3000/sn=abc123
这意味着,至少 sn=
应该与 values
一起出现,无论是按数字还是字母或两者混合。
目前我的state
是这样的:
.state('serialCreateCase', {
url: '^/sn={serialNumber}',
templateUrl:'app/createCase/create-case.html',
controller: 'createCaseController as ctrl'
})
但它适用于:localhost:3000/sn=, localhost:300/sn
- 如何防止这种情况?并匹配所需的值?
提前致谢。
您可以对状态参数使用正则表达式限定符。例如
url: '/sn={serialNumber:[a-z0-9]+}'
见https://ui-router.github.io/docs/0.3.1/#/api/ui.router.util.type:UrlMatcher
注意: 我删除了您 URL 上的 ^
前缀。我见过的文档都不支持这种格式。