刷新页面会删除非URL $ stateParam(UI路由器)

我在我的应用程序中使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章