我在我的应用程序中使用UI-Router,并且我有一个state参数,在该参数中将其作为URL的一部分并没有任何意义。根据文档,我正在创建参数而不在状态url中指定它,例如:
.state('contact', {
url: "/:contactId/contact",
params: {
otherParam: null
},
templateUrl: 'contacts.html'
})
这可以按预期工作,但是我注意到,如果手动刷新页面,该参数将重置为默认null。
例如,如果我这样重定向到状态:
$state.go('contact', {contactId: 42, otherParam: 11});
一切都按预期进行($stateParams.contactId
是42,$stateParams.otherParam
是11)。但是,一旦刷新页面,$stateParams.contactId
仍然是42,但$stateParams.otherParam
已设置回null
。是否有可能在整个浏览器刷新过程中保留此非URL参数?
这是可能的,但您不应该这样做。如果它应该在刷新后持续存在,则意味着根据定义它应该在URL中,因为您希望它是资源的组成部分。
如果您真的想违反约定并执行此操作,则需要执行一些操作以保存数据window.name
并在重新加载时检索数据。这绝对是一种反模式,任何人都可以访问该数据,但是就像我说的那样,这是可能的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句