Skip to content

Instantly share code, notes, and snippets.

@ragingprodigy
Created July 28, 2017 04:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ragingprodigy/74e4804c339f2121f23ecf4dbbb7e744 to your computer and use it in GitHub Desktop.
Save ragingprodigy/74e4804c339f2121f23ecf4dbbb7e744 to your computer and use it in GitHub Desktop.
Setting dynamic page titles in Angular 2+
import { Component, OnInit } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
constructor(
private titleService: Title,
private activatedRoute: ActivatedRoute,
private router: Router
) {}
ngOnInit() {
this.router.events
.filter((event) => event instanceof NavigationEnd)
.map(() => this.activatedRoute)
.map((route) => {
while (route.firstChild) {
route = route.firstChild;
}
return route;
})
.filter((route) => route.outlet === 'primary')
.mergeMap((route) => route.data)
.subscribe((event) => this.titleService.setTitle(event['title']));
}
}
@aurel1211
Copy link

Can Please someone explain a little bit the ngOnInit function? Thanks.

@aurel1211
Copy link

aurel1211 commented Sep 25, 2017

I found here some detailed explanations https://g00glen00b.be/page-title-route-change-angular-2/

@Boboss74
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment