2017-08-03 1 views
0

これは、角度ルータで何か不思議なことが起こったのは、これが2回目です。 私は現在Angular v4.3.1を使用しています。子ルートのパラメータが使用できない

私はオブジェクトの作成と編集に同じコンポーネントを使用しています。 これは、このコンポーネントに対して2つのルートを定義する理由です.1つはIDを持ち、もう1つは除外します。

私は次のルートを作成してみました:

{ 
    path: 'company/settings/survey', 
    component: SurveyComponent, 
    children:[ 
     {path:':id', 
     component:SurveyComponent 
     } 
    ] 
} 

をが、この場合には、私のidのparamが設定されることはありません。

私はそれを取得しています:

this.route.paramMap.subscribe((params) => { 
    if (params.has('id')) { 
     //Some stuff 
    } 
    } 

私は現在、フェイルバックを使用しています:

{ 
    path: 'company/settings/survey', 
    component: SurveyComponent, 
    }, { 
    path:'company/settings/survey/:id', 
    component: SurveyComponent 
    } 

が、私は私の最初のソリューションが動作していない理由を理解したいと思います。

ありがとうございました!

答えて

1

<router-outlet>にロードされ、これを試してみてください。

{ 
    path: 'company/settings/survey', 
    children:[ 
     { 
      path:'', component:SurveyComponent 
     }, 
     { 
      path:':id', component:SurveyComponent 
     }, 
    ] 
} 

その後、

constructor(route: ActivatedRouteSnapshot) {} 
this.route.paramMap.get('id'); 
....... 
+0

まあ良いことだそれ! 上記の@justin justeによって提供されたこの回答と説明で、私が得た行動と私が得た行動をよりよく理解することができます! –

1

最初の例では、あなたのコードは、あなたがやろうとしているとは思っていない別のSurveyComponent内のSurveyComponentにルーティングしようとしています。

子ルートが親コンポーネント

関連する問題