私は1つのコンポーネントしか持っていないので、別のモジュールにある別のコンポーネントにデータを渡したい。実際に私のapp.component
は、これらの子モジュールの親です。そして、私はそれぞれの子モジュールがいくつかのデータをapp.component
に送ることを望みます。しかし、彼らはルーティングの意味でのみ子供と親です。だから彼らは実際には親や子供ではないと私は思う。私が意味する角度2の異なるモジュールコンポーネント通信
は、app.component
のための私のテンプレットは、次のようになります。
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li><a routerLink="link1" routerLinkActive="active">Page1</a></li>
<li><a routerLink="link2" routerLinkActive="active">Page2</a></li>
<li><a routerLink="link3" routerLinkActive="active">Page3</a></li>
<li><a routerLink="link4" routerLinkActive="active">Page4</a></li>
</ul>
</div>
</nav>
<div *ngIf="needsSidebar" id="sidebar">some content</div>
<div>
<router-outlet></router-outlet>
</div>
のでapp.component
は、これらのモジュールおよび彼らのコンポーネントとは直接接続されていません。私はOutput
を使用しようとしましたが、コンポーネントは異なるモジュールからのものであり、失敗しました。私は何をすべきかで迷っています。サイドバーが必要な場合はサイドバーが必要かどうか、サイドバーに表示する必要があるかどうかを知るために、「子供」モジュールがapp.module
までデータを送信するようにします。どうしたらいいですか?
出力と角綴じを使用しようとしましたが、私のhtmlにセレクタがありません。ちょうど 'router-outlet'があります。どうすればそのイベントを渡すことができますか? 'zone.js:355 Unhandled Promise拒否:テンプレート解析エラー: 'child-selector'は既知の要素ではありません:' –
子コンポーネントは次のようにする必要があります。 NgModule'が 'declarations:[]'にある 'exports:[]'に追加され、現在の 'NgModule'は' imports:[] 'に他のモジュールを持つ必要があります。そして、 ''で束縛するとうまくいくはずです。ルータによって追加されたコンポーネントの場合、バインドのサポートはありません。この場合は、共有サービスを使用する必要があります。 –
ありがとう、私は、共有サービスは私のためだと思います。 –