AngularJS UI-Router中间可选的url段

时间:2016-09-05 12:04:46

标签: javascript angularjs angular-ui-router state

我希望为以下示例提供可选的网址段:

url: "/post/:category/:subcategory/:title/{id:int}",

在上面的示例中,子类别是可选的。例如,它将接受:

url: "/post/sports/football/some-title/10",

它也会接受:

url: "/post/sports/some-title/15",

没有子类别。我可以使用分离状态来做到这一点但是有什么规则吗? 请注意,只有子类别段是可选的。其他是强制性的。

2 个答案:

答案 0 :(得分:4)

.state('post', { url: '/post/:category/:subcategory/:title/:{id:int}', templateUrl: 'views/post.html', controller: 'postCtrl', params: { subcategory: { squash: true, value: null }, } })

了解更多信息read the doc

答案 1 :(得分:2)

此处详细描述了解决方案

Angular js - route-ui add default parmeter

以下是我们如何定义这样的参数:

.state('state', {
    url: '/:category/{subcategory:(?:football|tennis|hokey)}/:title/:id',
    abstract: true,
    template: '<div ui-view=""></div>',
    params: {subcategory : { squash : true, value: 'football' }}
})