angularjs – 在角度ui-router URL中添加可选属性

有没有办法在ui-router的url开头有一个可选属性?如果是这样,怎么样?

我想要达到这样的目的:

.state('events',{
    url: '(/city:)?/events/:id'
    ...
})

所以“城市”是可选的.

感谢您的任何输入.

最佳答案
让两条独立的路由指向同一个状态可能是不好的做法,但没有什么能阻止您创建使用相同分辨率/控制器/模板的两个不同状态.

$stateProvider
.state('state1', {
  url: "/:city/events/:id",
  templateUrl: "partials/events.html",
  controller: eventsCtrl
})
.state('state2', {
  url: "/events/:id",
  templateUrl: "partials/events.html",
  controller: eventsCtrl
});

function eventsCtrl($scope){
  // shared controller
}

同样,这可能是不好的做法,但我想不出更好的解决方案

转载注明原文:angularjs – 在角度ui-router URL中添加可选属性 - 代码日志