Angularjs 如何在angular ui router中定义regex参数,以便仅从一组已定义的字符串中拾取
我希望处于特定状态的angular ui router仅在参数为以下字符串之一时才能输入: 地点1 站点2 地点3 这是我的状态:Angularjs 如何在angular ui router中定义regex参数,以便仅从一组已定义的字符串中拾取,angularjs,Angularjs,我希望处于特定状态的angular ui router仅在参数为以下字符串之一时才能输入: 地点1 站点2 地点3 这是我的状态: $stateProvider.state("error", { url: '/error/{sub: (site1 | site2 | site3)}', templateUrl: 'views/error.html', controller: 'ErrorCtrl' }); 但出于某种原因,这不起作用。 如何正确地定义这个正则表达式?我发
$stateProvider.state("error", {
url: '/error/{sub: (site1 | site2 | site3)}',
templateUrl: 'views/error.html',
controller: 'ErrorCtrl'
});
但出于某种原因,这不起作用。
如何正确地定义这个正则表达式?我发现了问题
根据angular ui router的文档:
不要在正则表达式模式中插入捕获括号,否则
ui路由器中的UrlMatcher在整个正则表达式周围添加这些自身。
您实际上是在为同一目标引入第二个捕获组
参数,该参数将子URL中的编号上移。你可以用
但非捕获组,即?:。。。很好
所以解决办法就是把它们取下来
我还必须删除所有空格,因为它们实际上代表字母
$stateProvider.state("error", {
url: '/error/{sub:site1|site2|site3}',
templateUrl: 'views/error.html',
controller: 'ErrorCtrl'
});