我有一個組件,我希望它將數據傳遞給另一個模塊中的另一個組件。其實我的app.component
是這些兒童模塊的父母。我希望每個子模塊都能發送一些數據到app.component
。但他們只是在路由選擇的時候纔是孩子和父母。所以他們實際上並不是父母和孩子,我想。Angular 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
,告訴它是否需要側邊欄以及側邊欄應顯示哪些內容。我該怎麼做?
我試圖使用Angular綁定與輸出,但我沒有在我的HTML中的任何選擇器,我只有'router-outlet',我怎麼能通過一個事件?當我嘗試使用選擇器命令來測試它時,我得到了這個錯誤:'zone.js:355未處理的Promise拒絕:模板解析錯誤: 'child-selector'不是已知的元素:' –
子組件需要被添加到位於'declarations:[]'中的'NgModule'的'exports:[]'中,並且當前的'NgModule'需要在'imports:[]'中有另一個模塊。然後用'>綁定應該可以工作。對於由路由器添加的組件,不支持綁定。對於這種情況,您需要使用共享服務。 –
謝謝,那麼我想,共享服務就是爲了我。 –