AngularJs - 仅可通过完全匹配进行路线?

时间:2016-10-14 17:07:07

标签: angularjs angular-routing angular-route-segment

在我的应用中,我想完全匹配url。如果url没有完全匹配,我需要重定向到defualt为'`。

目前我要求测试:

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 - 如何防止这种情况?并匹配所需的值?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以对state参数使用正则表达式限定符。例如

url: '/sn={serialNumber:[a-z0-9]+}'

请参阅https://ui-router.github.io/docs/0.3.1/#/api/ui.router.util.type:UrlMatcher

注意:我删除了您在网址上的^前缀。我见过的文档都没有支持这种格式。