angularjs - 如何用ui-router设置路由优先级?

angularjs - 如何用ui-router设置路由优先级?,第1张

更具体地说:

我有路线myapp / about

另一条路线myapp /:userid

如何确保ui-router始终在/:userId?

之前匹配/约

最佳答案:

1 个答案:

答案 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位数字时才会加载状态,如123111等。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复