角度刷新后将数据保留在页面中

Posted

技术标签:

【中文标题】角度刷新后将数据保留在页面中【英文标题】:Keep data in page after refresh in angular 【发布时间】:2021-08-21 11:43:29 【问题描述】:

当我打开我的网站时,我会在顶部enter image description here 上看到“财务/代金券”,但是当我刷新页面时,只会出现“财务”,我不希望这样,当我刷新页面时它仍然会显示“财务/凭证”以及我发布的所有相关代码,请指导我输入哪个代码以及在哪里输入

export class TopBarComponent extends AppComponentBase 

formName = ""
constructor(
    injector: Injector,
    private _formTitleService: FormTitleService,
 
) 
    super(injector);
  

ngOnInit() 
 
    this.getFormTitle();    

    getFormTitle()
   
    this._formTitleService.getFormTitle()
        .subscribe(name => 
             
            this.formName = name; 
         
        );
    

html code
<div class="page-title">
                / <span>formName</span>
            </div>

【问题讨论】:

嗯,您订阅了“某物”并将值设置为formName,那么问题出在哪里?请提供minimal reproducible example 【参考方案1】:

您可以在您的组件中为formName = "Finance/voucher" 设置初始值,它会在页面刷新时保留。

【讨论】:

我不能这样做,因为formName变量存储“/”后面的值,还有更多页面请看代码 您需要提供登录信息或有关您的问题的更多信息,根据您从服务设置formName 的代码,因此它应该在加载时保留,因为该方法将在 ngOnInit 中再次运行。 Finance/voucher 的初始值是从哪里来的,如果不是来自服务,那么当您第一次加载它时? 导出类 FormTitleService constructor() formTitle= new BehaviorSubject(""); setFormTitle(_formTitle: string) 调试器 this.formTitle.next(_formTitle); getFormTitle() return this.formTitle; 这是我从这里只使用 getFormTitle 函数的服务代码 这没有什么问题,首先您要直接订阅BehaviourSubject,您需要使用formTitle.asObservable() 创建一个属性,该属性应该在您的组件中订阅。很难修复它并在评论中提供帮助,尝试在 jsfiddle 或其他地方创建代码演示

以上是关于角度刷新后将数据保留在页面中的主要内容,如果未能解决你的问题,请参考以下文章

用JS怎么实现刷新页面后保留刷新前的页面上的数据显示

vue单页应用在页面刷新时保留状态数据的方法

vuex页面刷新数据不保留,解决方法(转)

如何在 Ajax 刷新或提交到数据库后将计数器重置为 0,

如何在不刷新页面的情况下更新角度数据?

页面刷新后保留表格排序结果?