我的路线有一个YYYY-MM-DD
格式的日期可选参数。如果没有提供日期,我将提供今天的日期。
我这样定义了我的路线:
.state('some.report', {
url: '/report/:reportDate',
templateUrl: 'app/report/report.html',
params:{reportDate:moment().format('YYYY-MM-DD')},
controller: 'reportCtrl',
})
这有效,控制器中的参数确实是今天的日期,但网址仍为http://local/some/report/
如何更改它以便网址变为:: http://local/some/report/2015-02-23
答案 0 :(得分:3)
我想说,您的州定义应该有效,如this working example
所示我们也可以使用 squash: false
.state('some_report', {
url: '/report/:reportDate',
templateUrl: 'tpl.html',
params: {
reportDate: {
value: moment().format('yyyy-MM-dd'),
squash: false,
}
},
controller: 'reportCtrl',
});
有关此内容的更多信息,请访问:API reference $stateProvider
壁球 -
{bool|string=}:
壁球配置当前参数值与默认值相同时,URL中如何表示默认参数值。如果未设置压缩,则使用配置的默认压缩策略。 (参见defaultSquashPolicy())有三种壁球设置:
- 中
false
:参数的默认值不会被压扁。它被编码并包含在URLtrue
:URL中省略了参数的默认值。如果参数在状态的url声明中以斜杠开头并且后跟斜杠,则省略其中一个斜杠。这样可以提供更清晰的URL。"<arbitrary string>"
:参数的默认值将替换为您选择的任意占位符。
检查here