首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于路由和组件数据的角度页面标题

基于路由和组件数据的角度页面标题
EN

Stack Overflow用户
提问于 2019-07-23 22:27:27
回答 2查看 474关注 0票数 0

Angular 7 btw.

我正在尝试为每个路由设置一个自定义标题,但其中一些标题需要只有被路由组件才有的信息(即路由包含用户id,但标题应该包含用户名)。

我最初进入每个路由的组件,并在加载必要的数据后在ngOnInit中设置标题(使用Title.setTitle()),但一些路由使用相同的组件-例如,/user/user/edit可能都使用User组件,但/user/edit会触发弹出窗口。弹出窗口更改了标题,当它关闭时,标题应该返回到它在/user上的状态,但ngOnInit不会被调用,因为组件从未被销毁。

我想知道如何正确地解决这个问题。我肯定能够做到这一点,但这将是大量的代码,而且似乎很容易出错。有没有一个干净的解决方案是我看不到的?

EN

回答 2

Stack Overflow用户

发布于 2019-07-23 22:35:37

代码语言:javascript
运行
复制
import {Component, OnInit} from '@angular/core';
import {Title} from '@angular/platform-browser';

@Component({
  selector: 'app-privacy',
  templateUrl: './privacy.component.html',
  styleUrls: ['./privacy.component.scss']
})
export class PrivacyComponent implements OnInit {

  constructor(private title: Title) {
    this.setMetaAndTitle();
  }

  ngOnInit() {
  }

  setMetaAndTitle() {
    this.title.setTitle('Privacy - All you need to know');
  }

}

您所需要做的就是从@angular/platform-browser导入Title并按照说明使用它

票数 2
EN

Stack Overflow用户

发布于 2019-07-23 23:31:57

尝试传递路由参数并订阅queryParams ()

代码语言:javascript
运行
复制
this.activatedRoute.queryParams.subscribe(data => {})

或使用路由器事件跟踪对路由的更改

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57166402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档