2017-08-22 14 views
0

あるコンポーネントから別のコンポーネントに複雑なオブジェクトを角度で渡す方法が見つかりません。ナビゲーションルート経由であるコンポーネントから別のコンポーネントにオブジェクトを渡す方法はありますか?

私はアプリケーション内の異なるモジュールに2つのコンポーネントを持っています。あるコンポーネントから別のコンポーネントにナビゲートして、複雑なオブジェクトを2番目のコンポーネントに渡したいと思います。

コンポーネントワン:

buttonSubmit() { 
    this._router.navigate(['/app/sales/history', { product: this.product}]); 
} 

だからコンポーネント2に、私はproductオブジェクトを利用したいと思います:

this._route.params.subscribe(v => console.log(v)); 

私はActivatedRouteを使用してみましたが、それは彼らが持っている角度のドキュメント上で、仕事をdoesntの親子通信の例ですが、そうではありません。

答えて

0

サービスを行い、データを保守します。コンポーネントのいずれかに :コンポーネントのコンポーネントで

ngOnDestroy() { 
    this.ProductService.product = this.product; 
} 

ngOnOnit() { 
    this.product = this.ProductService.product; 
} 

一つの親モジュールのsome.module.tsは、プロバイダにProductServiceを追加します。他のコンポーネント2つの親モジュールで

@NgModule({ 
providers: [ProductService] 
}) 

を.module.tsは、インポートするProductServiceを追加します。

@NgModule({ 
    imports: [ProductService] 
    }) 
+0

は本当に小さなオブジェクトを渡すだけのサービスを作る必要がありますか? – gog

+0

this.productを文字列化してthis._router.navigate(['/ app/sales/history'、{product:this.product}])に送信してください。しかしそれは悪い習慣です –

関連する問題