如何将所有$ stateParams重置为其定义的默认值?当然,我可以手动重置它们,如:
$state.go(".", {
param1: "",
param2: 0,
param3: false
});
但是自动重置为定义的默认值会很好。
$stateProvider
.state("myState", {
url: "?param1¶m2¶m3",
params: {
param1: {
value: "",
type: "string",
squash: true
},
param2: {
value: 0,
type: "int",
squash: true
},
param3: {
value: false,
type: "bool",
squash: true
}
}
});
在设置值之前,手动执行此操作会强制我查找每个参数值。
我完全不想将所有内容设置为未定义,因为这可能会破坏某些逻辑。
修改
添加版本信息:
答案 0 :(得分:0)
如果您正在使用 ui-sref,那么您还可以提供 ui-sref="details({msg: ''})
之类的状态参数,或者如果您想清除状态参数,当您转换到当前状态时,您可以提及 $state.go('.', {msg: undefined} );
答案 1 :(得分:0)
有点晚了,但如果有人遇到同样的问题:
您可以将 inherit TransitionOptions 设置为 false 以强制使用 params 的默认值。
$state.go(".", {param1: ""}, {inherit: false});
在此处查看文档: https://ui-router.github.io/ng1/docs/latest/interfaces/transition.transitionoptions.html#inherit