/** * @license * Copyright Google Inc. 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} from '@angular/common'; import {Inject, Injectable, ɵɵinject} from '@angular/core'; import {getDOM} from '../dom/dom_adapter'; /** * 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 getDOM().getTitle(this._doc); } /** * Set the title of the current HTML document. * @param newTitle */ setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); } }