|
app.component.ts
import { nested_tab_items } from '../datasource';
import { Tab, TabComponent, SelectEventArgs } from '@syncfusion/ej2-ng-navigations'; // Import tab components
@Component({
selector: 'app-root',
template: `
<ejs-tab id="element" #tab[items]='tabItems' (selected)='handleSelectEvent($event)'>
</ejs-tab>` // Render tab component and we have imported items in datasource.ts file
})
export class AppComponent implements OnInit {
public tabItems: Object[];
……
public ngOnInit(): void {
this.tabItems = nested_tab_items;
……
}
public handleSelectEvent(e: SelectEventArgs): void { // Triggered selected event when you select tab items
if (e.selectedIndex === 0 && isNOU(document.querySelector('#usa_tab.e-tab'))) { // checked if first tab is selected on parent tab
let usa_obj: Tab = new Tab({ // Initialize child Tab component
items: this.usaItems
});
usa_obj.appendTo('#usa_tab'); // Render initialized child Tab component
let tab3_obj: Tab = new Tab({
items: this.tab3Items
});
tab3_obj.appendTo('#tab3');
let tab4_obj: Tab = new Tab({
items: this.tab4Items
});
tab4_obj.appendTo('#tab4');
}
…………..
}
}
|
|
datasource.ts
export let nested_tab_items: Object[] = [
{
header: { 'text': 'USA' },
content: '<div id="usa_tab"></div><div id="tab3"></div><div id="tab4"></div>' // You can specify three child tab into parent content
},
{
header: { 'text': 'France' },
content: '<div id="france_tab"></div>'
},
{
header: { 'text': 'Australia' },
content: '<div id="australia_tab"></div>'
}
];
……………
|