2017-07-20 1 views
2

私はページタイトルを取って変数に書き込む必要があります。typescriptを使用してページタイトルを取得するにはどうすればよいですか?

import { Component, OnInit } from '@angular/core'; 

@Component({ 
    selector: 'home', 
    templateUrl: './home.component.html' 
}) 
export class HomeComponent implements OnInit { 

    title: string; 

    ngOnInit() { 
     console.log("Title is " + this.title); 
     this.title === document.title; 
    } 
} 

をしかし、私は、コンソール上で、「タイトルが定義されていません」取得しています: 私はtypescriptですコードを使用しています。

私も試してみました:

title: string; 

    ngOnInit() { 
     this.title === this.titleService.getTitle(); 
     console.log("Title is " + this.title); 
    } 
    public constructor(private titleService: Title) { } 
    getTitle() { 
     this.titleService.getTitle(); 
    } 

が、結果は同じです。ページタイトルを取得する正しい方法は何ですか?

+0

を参照してください。ただし、document.titleはまだ設定していますか? – Vega

+0

はい_Layoute.cshtmlにタイトルが設定されています。 .NETコアでこれを使用していますが、質問には関係ないと思いますか? – kendzi

+1

'==='?単一の '= 'を使用してください。 –

答えて

1

あなたはいくつかの間違いを犯しました。

  1. ===が厳密な等価比較のために使用されている、いない変数の値を設定する(より===約オペレータは、ここで見つけることができる:Difference between == and === in JavaScript)。
  2. 最初に変数を表示してから、その値を「設定」(ポイント1を参照)しようとしています。

変更するには、コード:あなたは、角度/プラットフォームブラウザ@からタイトル・プロバイダーを使用することができます

ngOnInit() { 
    this.title = this.titleService.getTitle(); 
    console.log("Title is " + this.title); 
} 
+0

これは素晴らしいですが、私は得ました 要求の処理中に未処理の例外が発生しました。 例外:ノードモジュールへの呼び出しでエラーが発生しました:エラー:未知(未定):ReferenceError:ドキュメントが定義されていません ReferenceError:ドキュメントが定義されていません どう定義すればよいですか? – kendzi

+0

2番目のアプローチはどうですか? 'titleService'では? –

+0

はい、2番目の方法が有効です。 – kendzi

関連する問題