根据angular2
中的路径路径输出页面标题的最佳方法是什么,而不是硬编码标题,我想在控制器中输出标题。< / p>
如果用户转到/dashboard
,信息中心页面将显示信息中心标题:
{ path: 'dashboard', component: dashComponent}
某处:
if(path==dashboard){
title:string = "Dashboard"
} else if(path==something){
title:string = "Something"
}
<h1>{{title}}</h1
这个逻辑有效,但重复location.path似乎有点乏味
if(this.location.path() == '/order-ahead'){
console.log('Dashboard')
this.title = 'Dashboard';
} else {
console.log('its something else');
this.title = 'Something Else'
}
答案 0 :(得分:0)
我想,您应该使用更复杂的逻辑来实现更复杂的解决方案。例如,使用CanActivated
后卫,例如此票证中的内容:Angular 2 RC4 Router get intended route before activated
答案 1 :(得分:0)
我认为您可以按照文档中的指导通过import { Title } from '@angular/platform-browser';
bootstrap(AppComponent, [ Title ])
服务设置标题:
export class AppComponent {
public constructor(private titleService: Title ) { }
public setTitle( newTitle: string) {
this.titleService.setTitle( newTitle );
}
}
然后在您可以访问路径的组件中使用以下内容:
form
以下是有关此文档的链接:this .NET Fiddle
答案 2 :(得分:0)
最简单的解决方案,订阅路由器中的路由更改(路由器的beta 3.0-2示例):
import { Router, Event, NavigationEnd } from '@angular/router';
constructor(protected router: Router)
{
this.router.events.subscribe(this.routeChanges.bind(this));
}
protected routeChanges(event: Event)
{
if (event instanceof NavigationEnd) {
let url = event.url;
}
}