@@ -996,6 +996,23 @@ describe('MdMenu', () => {
996
996
expect ( overlay . querySelectorAll ( '.mat-menu-panel' ) . length ) . toBe ( 0 , 'Expected no open menus' ) ;
997
997
} ) ) ;
998
998
999
+ it ( 'should toggle a nested menu when its trigger is added after init' , fakeAsync ( ( ) => {
1000
+ compileTestComponent ( ) ;
1001
+ instance . rootTriggerEl . nativeElement . click ( ) ;
1002
+ fixture . detectChanges ( ) ;
1003
+ expect ( overlay . querySelectorAll ( '.mat-menu-panel' ) . length ) . toBe ( 1 , 'Expected one open menu' ) ;
1004
+
1005
+ instance . showLazy = true ;
1006
+ fixture . detectChanges ( ) ;
1007
+
1008
+ const lazyTrigger = overlay . querySelector ( '#lazy-trigger' ) ! ;
1009
+
1010
+ dispatchMouseEvent ( lazyTrigger , 'mouseenter' ) ;
1011
+ fixture . detectChanges ( ) ;
1012
+ expect ( lazyTrigger . classList )
1013
+ . toContain ( 'mat-menu-item-highlighted' , 'Expected the trigger to be highlighted' ) ;
1014
+ expect ( overlay . querySelectorAll ( '.mat-menu-panel' ) . length ) . toBe ( 2 , 'Expected two open menus' ) ;
1015
+ } ) ) ;
999
1016
1000
1017
} ) ;
1001
1018
@@ -1126,7 +1143,11 @@ class CustomMenu {
1126
1143
[mdMenuTriggerFor]="levelOne"
1127
1144
#levelOneTrigger="mdMenuTrigger">One</button>
1128
1145
<button md-menu-item>Two</button>
1129
- <button md-menu-item>Three</button>
1146
+ <button md-menu-item
1147
+ *ngIf="showLazy"
1148
+ id="lazy-trigger"
1149
+ [mdMenuTriggerFor]="lazy"
1150
+ #lazyTrigger="mdMenuTrigger">Three</button>
1130
1151
</md-menu>
1131
1152
1132
1153
<md-menu #levelOne="mdMenu">
@@ -1143,6 +1164,12 @@ class CustomMenu {
1143
1164
<button md-menu-item>Eight</button>
1144
1165
<button md-menu-item>Nine</button>
1145
1166
</md-menu>
1167
+
1168
+ <md-menu #lazy="mdMenu">
1169
+ <button md-menu-item>Ten</button>
1170
+ <button md-menu-item>Eleven</button>
1171
+ <button md-menu-item>Twelve</button>
1172
+ </md-menu>
1146
1173
`
1147
1174
} )
1148
1175
class NestedMenu {
@@ -1156,6 +1183,10 @@ class NestedMenu {
1156
1183
1157
1184
@ViewChild ( 'levelTwo' ) levelTwoMenu : MdMenu ;
1158
1185
@ViewChild ( 'levelTwoTrigger' ) levelTwoTrigger : MdMenuTrigger ;
1186
+
1187
+ @ViewChild ( 'lazy' ) lazyMenu : MdMenu ;
1188
+ @ViewChild ( 'lazyTrigger' ) lazyTrigger : MdMenuTrigger ;
1189
+ showLazy = false ;
1159
1190
}
1160
1191
1161
1192
@Component ( {
0 commit comments