为了账号安全,请及时绑定邮箱和手机立即绑定

用户通过用户页面更新应用程序标题后,如何使应用程序标题静态化?

用户通过用户页面更新应用程序标题后,如何使应用程序标题静态化?

撒科打诨 2021-07-06 13:11:21
我正在应用程序组件的模板上设置标题。标题已根据用户在用户页面上的输入进行更新。如何在整个应用程序中使用该标题?我已经尝试过本地存储,但有没有其他方法可以在整个应用程序中使用它?Stackblitz 网址:https ://stackblitz.com/edit/angular-kfptvs[更新]当我在另一个应用程序上实现同样的功能时,我开始收到错误:Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'null: Bob'. Current value: 'null: Rob'.执行以下代码时出现上述错误:this._userService.titleObs.subscribe((title) => {      this.title = title;})我已经通过下面的代码进行了修复,但有人可以提出更好的修复方法吗?this._userService.titleObs.subscribe(  title => setTimeout(() => this.title = title, 0));
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

正如 Maryannah 所说,您使用了一项服务,这是解决问题的好方法。它对您不起作用的原因可能是因为您的服务位于 temp 文件夹下。如果将服务放在根文件夹中,则所有组件都将能够访问相同的数据。


查看完整回答
反对 回复 2021-07-08
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

问题已通过添加修复 ChangeDetectorRef


import { Component, OnInit, ChangeDetectorRef } from '@angular/core';


constructor(

     private ref: ChangeDetectorRef

){}


this._userService.titleObs.subscribe((title) => {

      this.title = title;

      this.ref.detectChanges()

})


查看完整回答
反对 回复 2021-07-08
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信