2016-11-09 23 views
4

現在、TypescriptでAngular 2プロジェクトに取り組んでいます。コンポーネント間の動作を角2でTypescriptで共有する

私は同じ動作を共有するいくつかのコンポーネントを持っています:それらはすべて、ローダー(いくつかのデータを取り込むかどうかによって異なります)、エラー画面(取り込みが失敗した場合)同じサービス(データをフェッチするサービス)。このサービスは30秒ごとにデータをリフレッシュしており、コンポーネントのサブスクライバはをほぼと同じことを新しいデータで実行しています。

この現象を共有する良い方法が見つかりませんでした。

私はtypescriptからmixinsを使用しようとしましたが、まずコンポーネント内でmixinで宣言したメソッドをオーバーライドできません。 。

私もデコレータを使用しようとしましたが、私のコンパイラはデコレータで宣言されたメソッドを見つけられなかったので不平を言っています。

最終的に、テンプレートを持たない親コンポーネントを持つタイスクリプトの継承を使用しようとしました。それは単なる親クラスであり、 "extends ParentComponent"と共に使用し、すべてのロジックをParentComponentに入れます。この最後の方法は最も簡単でしたが、これは確かに良い方法ではないという強い感情を持っています(継承を超えた構成など)

正しく行う方法はありますか?私はレール上のルビーから来ています。ルビーの「懸念」のようなものは素晴らしいでしょう。

+0

あなたは正確に何を共有しますか?テンプレート?コンポーネントクラス? –

答えて

0

ユニークなビヘイビアを(ChildComponents)として保持し、共有サービスを介してデータモデルを共有するルータコンセントを保持するParentComponentを作成します。

また、モジュール固有の共有サービスを取得するためにlazyloading(loadchildrenを使用したルート)を組み込みます。

関連する問題