0

私のパートナーと私は、最高レベルのコンポーネント(AppComponent)にアプリケーション全体で持続するコンポーネント(UndoComponentと呼ぶ)があるAngular 4アプリケーションを開発しています。 AppComponentにはルータ出口があります。この例では、ルータが現在ContentComponentを表示しています。Angular Extensionsコンポーネントの相互作用

ContentComponentの項目がUndoComponentと話す必要がある場合があります。たとえば、特定のイベントが発生した場合、UndoComponent内部のスタックに情報をプッシュしたい場合があります。だから、ContentComponentがUndoComponentのスタックを更新するようにAppComponentに指示するために何かする必要があります。

私は、共有サービスとObservablesを使用して子(特にルーティングされた子コンポーネント)から親を更新できることを知っていますが、私のパートナーはContentComponentをAppComponentから継承し、AppComponent内のメソッドを使用して更新UndoComponent

私はこの解決策に不安を感じています。親/子の通信にコンポーネント継承を使用する必要がある理由と使用しない理由に関する情報が見つかりません。このようにするのははるかに簡単だと思うので、私たちのサービスでこれらのタイプの更新を実現するためにオブザーバブルを作成し続ける必要はありません。

思考?

答えて

1

私はサービスとObservablesを使用しています。ほとんどの開発者は同意すると思います。私は別のアプローチ、特に特異な状況を試すという利点を見ません。ドキュメントは、コンポーネント間通信用のサービスを使用して概要を説明します。また、サービスでは、すべての更新でソリューションを再評価する必要はありません。たとえば、現在、ルーテッドコンポーネントをロードする単一のルーターアウトレットがありますが、子ルートを使用してルーテッドコンポーネントに変更するとどうなりますか。それはどのようにフィルタリングしてUndoComponentを更新するのでしょうか?サービスをご利用の場合は、引き続きサービスを注入するだけで、ルータの店舗の深さや予期しないその他の変更にかかわらず、何の努力を払っても機能します。

+0

ありがとうございました!私は、このアプローチがコンポーネントとルーティング構造に私たちの実装をどのように結びつけるかについては考えていませんでした。 –

関連する問題