ルートコンポーネントテンプレートにコンポーネントを追加し、子コンポーネントからコンポーネントにアクセスできるかどうかを指定します。例えば、これは、ルートアプリケーション・コンポーネントであると想像:私が望む何angular2のグローバルコンポーネント
<main>
<global-component #globalComponent></global-component>
<child-component></child-component>
</main>
はこのような何かを行うことができるという、「子部品」のコードでは、次のとおりです。
@Component({...})
export class ChildComponent
{
@SomethingAwesome(GlobalComponent) globalComponent: GlobalComponent;
}
目標は常に同じ方法でエラー/警告を表示できることです。 "GlobalComponent"テンプレートはモーダルメッセージであり、私はいつでもそれを表示できるようにしたいと考えています。たとえば、次のように
...
this.globalComponent.ShowError("Something's weird in here !");
...
代替(私は推測)私が考えている「GlobalComponentは」に加入し、それに応じて反応するであろうことを、観察してサービスを作成しているが、私は尋ねたことは可能である場合、私は思ったんだけど。
編集:例では
、コンポーネントが兄弟であるが、それは常にそうではないかもしれません。 "GlobalComponent"は、どんな "深み"があっても、どのコンポーネントでも利用できるはずです。
おかげ
でそれを渡すことができますどのコンポーネントからでも使用できます。兄弟であるかどうか。申し訳ありませんが明らかでない場合。 – ssougnez
次に、共有サービスが必要です。 GlobalComponentは共有サービスを注入してサービスに登録することができ、同じサービスにアクセスする他のコンポーネントはそこで 'GlobalComponent'にアクセスできます。より良いオプションは、共有サービスに 'Observable'を持ち、それを使ってコンポーネント間の通信を行います。 1つは加入者であり、もう1つはエミッタです。 –
https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service –