更具体地说:
我有路线myapp / about
另一条路线myapp /:userid
如何确保ui-router始终在/:userId?
之前匹配/约答案 0 :(得分:0)
你需要为这两个myapp/about
创建一个状态,它将有一个名为about
的状态&其他人将接受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'
})
通过将其定义为不同的状态ui-router,只有当about
网址出现在浏览器中时才会调用/myapp/about
州名,当浏览器中出现/myapp/about
以外的其他网址时致电userDetails
状态,接受userid
,/myapp/
将使用$stateParams
服务获得该参数值。
为了让它更好,你可以在路线上添加正则表达式,只需要数字,或者你可以在那里设置任何regx,假设我只想接受3位数的数字,那么我将改变我的url
选项我的状态为url: "/myapp/{userid:[0-9]{1,3}}"
,通过将此URL设置为状态,仅当状态包含3位数字时才会加载状态,如123
,111
等。