import { Component, HostBinding, Input, TemplateRef, ViewChild, ViewContainerRef, AfterContentInit, ContentChildren, QueryList } from '@angular/core'; import { FarrisMenuItemDirective } from './../directive/menu-item.directive'; import { FarrisSubMenuService } from '../service/sub-menu.service'; @Component({ selector: '[farrisMenuGroup]', templateUrl: './menu-group.component.html', providers: [FarrisSubMenuService] }) export class FarrisMenuGroupComponent implements AfterContentInit { @ViewChild('titleViewf', { read: ViewContainerRef }) titleViewf: ViewContainerRef; @ContentChildren(FarrisMenuItemDirective) listOfMenuItem: QueryList; /* 标题 */ @Input() get title() { return this.title; } set title(value: string | TemplateRef) { if (value instanceof TemplateRef) { this.titleViewf.createEmbeddedView(value); this.isTemplate = true; } else { this.isTemplate = false; this.fTitle = value; } } fTitle: string | TemplateRef; isTemplate = true; idChildOfSub: boolean; /* 宿主绑定menugroup类名 */ @HostBinding('class.f-component-dpmenu-item-group') isMenuGroup = true; constructor( private subMenuSer: FarrisSubMenuService ) { } ngAfterContentInit() { // this.subMenuSer.level++; this.listOfMenuItem.forEach(menuItem => { menuItem.isChildOfMenuGroup = true; // menuItem.setLevel(this.subMenuSer.level); }); } }