Angular 7 btw.
我正在尝试为每个路由设置一个自定义标题,但其中一些标题需要只有被路由组件才有的信息(即路由包含用户id,但标题应该包含用户名)。
我最初进入每个路由的组件,并在加载必要的数据后在ngOnInit
中设置标题(使用Title.setTitle()),但一些路由使用相同的组件-例如,/user
和/user/edit
可能都使用User组件,但/user/edit
会触发弹出窗口。弹出窗口更改了标题,当它关闭时,标题应该返回到它在/user
上的状态,但ngOnInit
不会被调用,因为组件从未被销毁。
我想知道如何正确地解决这个问题。我肯定能够做到这一点,但这将是大量的代码,而且似乎很容易出错。有没有一个干净的解决方案是我看不到的?
发布于 2019-07-23 22:35:37
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
并按照说明使用它
发布于 2019-07-23 23:31:57
尝试传递路由参数并订阅queryParams ()
this.activatedRoute.queryParams.subscribe(data => {})
或使用路由器事件跟踪对路由的更改
https://stackoverflow.com/questions/57166402
复制相似问题