【发布时间】:2019-06-19 13:39:56
【问题描述】:
我在应用组件的模板上设置标题。标题已根据用户页面上的用户输入进行更新。如何在整个应用中使用该标题?
我尝试过使用本地存储,但有没有其他方法可以在整个应用程序中使用它?
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)
);
【问题讨论】:
-
你使用了服务,这是最好的方法
-
@Maryannah 是的。但是当用户导航到主页时,标题有一个未定义的值。
-
不在你的闪电战中,它会重新加载页面。但我只是回答你原来的问题,如果你的代码有问题,请详细解释!
-
在您的 Stackblitz 中,页面被重新加载,因为您使用 标记进行导航而不是路由器链接。
-
@riorudo 使用 routerLink 后,它可以工作。如果你想发表你的答案,我会接受。谢谢
标签: javascript angular routing