2016-12-21 4 views
0

私は/1、/ 2のような数値ルートにレンダリングする必要成分、(:ID数)/ 3など を有します。私のコンポーネントでngOnInitは

私はngOnInitコード

ngOnInit(){ 
    alert(); 
} 

最初時間ルート変更警告火災、それはない他のルートの変更のために宣言しました。なぜだろう?

答えて

1

あなたはこれを行うことができますActivatedRoute service.Youで観察paramsからidパラメータを取る必要があります。

//コンポーネント素晴らしい作品

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

constructor(
    private route: ActivatedRoute  
) {} 

ngOnInit(): void { 
    this.route.params.subscribe((params: Params) => { 
    console.log(params['id']); 
    // alert(); 
    }); 
} 
+0

- ありがとう! 1つの質問があります。コード内の警告からコメントを削除して、ルートが(/と言うと)/ 5か/ 10かなんであれです。 F5ボタンを使ってページをリフレッシュすると、 "ReferenceError:alert is not defined"というメッセージが表示されます。 – Vnuuk

+1

'alert'はJavaScriptの一部ではありません。ウェブブラウザによって提供される' window'オブジェクトの一部です。サブスクリプション 'コンテクストとそれのために働いていない – ranakrunal9

1

コンポーネントが既にロードされている場合は、変更をサブスクライブする必要があります。次のように

https://stackoverflow.com/a/33548895/2013580

router.events.subscribe((val) => { 
     // see also 
     console.log(val instanceof NavigationEnd) 
    }); 
    } 
関連する問題