diff --git a/components/menu/nz-menu.spec.ts b/components/menu/nz-menu.spec.ts index 3fc0c874e4..5416ed176d 100644 --- a/components/menu/nz-menu.spec.ts +++ b/components/menu/nz-menu.spec.ts @@ -45,7 +45,8 @@ describe('menu', () => { NzTestMenuHorizontalComponent, NzTestMenuInlineComponent, NzDemoMenuNgForComponent, - NzTestNgIfMenuComponent + NzTestNgIfMenuComponent, + NzTestSubMenuSelectedComponent ], schemas: [NO_ERRORS_SCHEMA], providers: [ @@ -490,6 +491,15 @@ describe('menu', () => { }).not.toThrowError(); }); }); + describe('submenu default selected', () => { + it('should default selected active submenu', () => { + const fixture = TestBed.createComponent(NzTestSubMenuSelectedComponent); + fixture.detectChanges(); + expect(fixture.debugElement.nativeElement.querySelector('.ant-menu-submenu').classList).toContain( + 'ant-menu-submenu-selected' + ); + }); + }); }); }); @@ -712,3 +722,22 @@ export class NzTestNgIfMenuComponent { text = 'text'; display = true; } + +// https://github.com/NG-ZORRO/ng-zorro-antd/issues/3345 +@Component({ + template: ` + + ` +}) +export class NzTestSubMenuSelectedComponent {} diff --git a/components/menu/nz-submenu.component.ts b/components/menu/nz-submenu.component.ts index ab88716fbc..2bf21fa94e 100644 --- a/components/menu/nz-submenu.component.ts +++ b/components/menu/nz-submenu.component.ts @@ -198,6 +198,7 @@ export class NzSubMenuComponent implements OnInit, OnDestroy, AfterContentInit, flatMap(() => merge(this.listOfNzMenuItemDirective.changes, ...this.listOfNzMenuItemDirective.map(menu => menu.selected$)) ), + startWith(true), map(() => this.listOfNzMenuItemDirective.some(e => e.nzSelected)), takeUntil(this.destroy$) )