我使用Angular創建了選項卡控件。結果應該是這樣的:Angular - 將組件實例注入到另一個組件的視圖中
<tabs>
<tab header="tab 1">
hello
</tab>
<tab header="tab 2">
world
</tab>
</tabs>
現在,標籤組件看起來是這樣的:
@Component({
selector: 'tab',
template: `<ng-content></ng-content>`
})
export class TabComponent {
@Input() header: string;
}
而且標籤組件看起來是這樣的:
@Component({
selector: 'tabs',
template: `
<div class="tabs">
<ul>
<li *ngFor="let tab of tabs">
<a (click)="selectTab(tab)">
{{tab.header}}
</a>
</li>
</ul>
</div>
`,
})
export class TabsComponent {
@ContentChildren(TabComponent) tabs;
selectTab(tab: TabComponent) {
}
}
現在,當調用selectTab()方法時,我希望按下的選項卡(「hello」或「world」)的內容在博弈中呈現ttom的模板。
基本上需要有某種在TabsComponent標籤佔位符,並且它需要被結合到所述當前選擇的TabComponent。
無論如何,我不能得到它的工作。我試過使用ng-template和createEmbeddedView,但我不明白如何從組件中獲取TemplateRef,並且我不完全確定這是正確的方法。
謝謝!
爲什麼在「TabsComponent」模板中沒有'ng-content' ? –
因爲那麼所有的選項卡都會出現在那裏,我只想要*選中*選項卡出現。 –
如果您不使用角度,則忽略'內容中的所有內容忽略 '標記。 –