2017-08-04 9 views
0

は、チェックリスト、チェックが私がconmponent有する成分で今ルーティングを介してデータを通過させるが、他の構成要素(渡されたデータのソース)Angular2読取データ

this._router.navigate(["/tsafety/checklist-checks", truckdetails:this.regForm.value}]); 

からそれに

をretruieveすることができません解析されました

constructor(){ 

this.sub = this.route.params 
    .subscribe(params => { 
    this.truckdetails = params["truckdetails"]; 
    console.log(params["truckdetails"]); 
    }) 
} 

を(ここでデータを送信しています)上記コンソールは

0123表示します

は、そのコンソールでオブジェクトを表示するとき、私は上記のパラメータデータを読み込むにはどうすればよい

UPDATEルートは

{path:'checklist-checks', component:TruckYardChecklistComponent}, 
+0

console.log(JSON。stringify(params ["truckdetails"]));私に応答を知らせてください –

+0

これは "[オブジェクトオブジェクト]"と表示されます –

+0

ここに経路パスを追加してください –

答えて

1

this.regForm.valueの結果は、定義されたフィールドとそれぞれの値を含むjsonオブジェクトです。

routeparamsの 'truckdetails'に割り当てられた値がthis.regForm.valueオブジェクトの.toString()値であるため、console.logの結果は正しいです。

フォームの全てのデータを渡したい場合は、そう

this._router.navigate(["/tsafety/checklist-checks", this.regForm.value]); 
+0

それはオブジェクトを真にして、それを通り過ぎても元のデータに含まれているいくつかのオブジェクトにまだアクセスすることはできません。したがって、素材のようなフィールドもオブジェクトです({status:2、label: 'new goods'}))。同様の問題を投げます –

+0

あなたの場合は、this.regForm.valueをオブジェクトであるカスタムオブジェクトに分割し、それをparamsオブジェクトとして渡す必要があります。イベントをうまく利用するには、あるコンポーネント間でデータを通信するためにサービスを使用します(Observablesなどを使用して、サービス上の変数にデータをキャッシュすることによって)。オプションのパラメータを使用してフォームデータを転送する方法が正しくありません。 –

1

はJavaScriptを使用してコンソールにオブジェクトを書き込むための文の下に使用できるファイル。

console.log(JSON.stringify(params["truckdetails"])); 

これは、検査時にブラウザコンソールにjson形式の文字列を表示します。

+0

"[オブジェクトオブジェクト]"を出力する –

+0

オブジェクトをjson形式に変換してjson文字列を出力する必要があります。 – TechnoCrat

+0

あなたのオブジェクトブラウザコンソールを拡張できますか?それはあなたのオブジェクトの内容を検査することができる横に小さなトグルボタンを持っています。 – TechnoCrat

1

のようなオプションのparamsとして、オブジェクト全体を渡す実際にそこに小さな修正があなたのコードであり、私はそれが動作すると思います。

ルーターのファイルで次に
this._router.navigate(["/tsafety/checklist-checks", this.regForm.value]); 

この

{path:'checklist-checks/:truckdetails', component:TruckYardChecklistComponent}, 

そして今、あなたのコードはずワットような何かをあなたはthis.regForm.value

1

で値を取得している場合ORK私はあなたがルート・パス

内のparamsは、ライン

{ path: 'checklist-checks/:truckdetails', component: ComponentTwo } 
に従うことで、あなたの1行のコード

{path:'checklist-checks', component:TruckYardChecklistComponent}, 

を交換して合格に逃したと思います

経路パラメータの詳細についてはhereをご覧ください。

Demo

が、これはあなたを助けることを願っています!

関連する問題