Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用ui路由器设置路由优先级?_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 如何使用ui路由器设置路由优先级?

Angularjs 如何使用ui路由器设置路由优先级?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,更具体地说: 我有我的应用程序/关于 还有另一个路由myapp/:userid 如何确保ui路由器始终匹配/about before/:userId?您需要为这两个myapp/about创建一个状态,其中一个状态为about,另一个状态为accepting userId参数 .state('about',{ url: '/myapp/about', templateUrl: 'appp/views/about.html', controller: 'aboutController'

更具体地说:

我有我的应用程序/关于

还有另一个路由myapp/:userid


如何确保ui路由器始终匹配/about before/:userId?

您需要为这两个myapp/about创建一个状态,其中一个状态为about,另一个状态为accepting userId参数

.state('about',{
  url: '/myapp/about',
  templateUrl: 'appp/views/about.html',
  controller: 'aboutController'
})

.state('userDetails',{
  url: '/myapp/:userid',
  templateUrl: 'appp/views/userDetails.html'
  controller: 'userDetailsController'
})
通过将它们定义为不同的状态,只有当/myapp/about URL出现在浏览器中时,才会调用about statestate;当/myapp/about的其他URL出现在浏览器中时,才会调用userDetails状态,该状态将接受userid,该userid位于/myapp/之后,您将使用$stateparms服务获取该参数值


为了更好,您可以在只要求数字的路由上添加正则表达式,或者您可以在那里设置任何正则表达式,假设我只想接受3位数字的数字,那么我会将我所在州的url选项更改为url:/myapp/{userid:[0-9]{1,3},通过将此URL设置为状态,仅当该状态有3位数字(如123111等)时,它才会加载该状态。

我认为只需在用户ID路由生效之前添加“关于”路由即可。@OrGal这对您有帮助吗。。?