使用Angular相对较新,但在使用ui.router的{/var1}/:var2
时,我似乎无法找到任何网址别名或完全可选的路径参数(类似$stateProvider
。
我希望以下两个都是有效路径,理想情况是在相同的状态声明上,以便我可以使用一个或两个参数调用状态更改。
/var1/var2
/var2
当然,我可以使用如下匹配,但这些都不是真正的解决方案。
/:var1/:var2
,但这仍然需要var1的空值(//var2
)/:var2?var1
或/:var2/:var1?
,但这些都不是
因为他们重新安排了这条道路,所以在理论上是理想的。/:var1/:var2
和/:var2
作为单独的状态,但我可能需要更密切地管理状态更改,并根据可用的参数进行选择。 任何指出我正确方向的信息都将非常感激。
快速剥离样本以供上下文使用。
$stateProvider
.state('app.view', {
url : '/:var1/:var2'
}).state('app.view2', {
url : '/:var2'
});
答案 0 :(得分:5)
也许这会起作用
.state('app.view', {
url: '/:var1/:var2',
templateUrl: 'yourTpl.html',
controller: 'YourCtrl',
params: {
var1: {squash: true, value: null}
}
})
squash配置当前参数值与默认值相同时,URL中如何表示默认参数值