/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common'; import {Inject, Injectable, ɵɵinject} from '@angular/core'; /** * Factory to create Title service. */ export function createTitle() { return new Title(ɵɵinject(DOCUMENT)); } /** * A service that can be used to get and set the title of a current HTML document. * * Since an Angular application can't be bootstrapped on the entire HTML document (`` tag) * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements * (representing the `` tag). Instead, this service can be used to set and get the current * title value. * * @publicApi */ @Injectable({providedIn: 'root', useFactory: createTitle, deps: []}) export class Title { constructor(@Inject(DOCUMENT) private _doc: any) {} /** * Get the title of the current HTML document. */ getTitle(): string { return this._doc.title; } /** * Set the title of the current HTML document. * @param newTitle */ setTitle(newTitle: string) { this._doc.title = newTitle || ''; } }