首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于保留和动态url的UI-路由器url正则表达式

问用于保留和动态url的UI-路由器url正则表达式
EN

Stack Overflow用户
提问于 2014-09-12 06:29:12
回答 1查看 1.3K关注 0票数 1

我想为用户配置文件提供一个很好的网址,即url.com/username

但也保留了网址,如url.com/类别,url.com/login等。

我已经为保留的url设置了状态。

代码语言:javascript
复制
.state('categories',{
        url:'/categories',     // i.e. url.com/categories
        ...
    });

然后,我尝试为根状态提供一个正则表达式,该正则表达式将匹配用户名,而不匹配上述保留的url状态。

代码语言:javascript
复制
$stateProvider
    .state('profile',{
        url:'/{username:^((categories|login(?!$)).+|(?!categories|login).+)$}',
        ...
    });

我回顾了UI-路由器URL-路由文档(https://github.com/angular-ui/ui-router/wiki/URL-Routing),并试图理解urlMatcher,并使我的regex遵从。

目前,它将带我进入保留状态,例如url.com/类别,但如果我试图访问url.com/someusername,它不会加载配置文件并将我带到url.com/

我需要改变我的准则吗?

是否可以使用某个正则表达式来完成此操作,还是urlMatcher无法处理保留的+动态url/“不匹配”正则表达式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-12 19:07:29

你设立各州的命令在这里很重要。当它找到第一个匹配时,它将停止查找,只使用匹配的第一个状态。

这是有用的,当你想要捕捉一些状态之前,另一些。在设置动态状态之前,可以设置所有保留状态。

代码语言:javascript
复制
$stateProvider
    .state('categories',{
         url:'/categories',
         ...
     })
    .state('login',{
         url:'/login',
         ...
    })
    .state('profile',{
         url:'/:username',
         ...
     });

示例:http://fiddle.jshell.net/TheSharpieOne/ftxfceg1/1/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25802087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档