11@namespace AntDesign.ProLayout
2+ @using Microsoft .AspNetCore .Components .Routing
23@inherits AntProComponentBase
34
4- <Menu
5- Mode =" Mode"
6- DefaultOpenKeys =" OpenKeys"
7- Theme =" NavTheme"
8- Style =" @Style"
9- Accordion =" @Accordion"
10- Class =" @ClassMapper.Class"
11- OnOpenChange =" SetOpenKeys" >
12- @menuItemTemplate((MenuData , false))
5+ <Menu Mode =" Mode"
6+ DefaultOpenKeys =" OpenKeys"
7+ Theme =" NavTheme"
8+ Style =" @Style"
9+ Accordion =" @Accordion"
10+ Class =" @ClassMapper.Class"
11+ OnOpenChange =" SetOpenKeys" >
12+ @menuItemTemplate(MenuData , false)
1313</Menu >
1414
1515@code
1616{
17- static readonly RenderFragment <MenuDataItem > title = menuItem => @< span >
18- @if (! string .IsNullOrEmpty (menuItem .Icon ))
19- {
20- < Icon Type = " @menuItem.Icon" Theme = " outline" / >
21- }
22- < span > @menuItem .Name < / span >
23- < / span > ;
17+ RenderFragment title (MenuDataItem menuItem ) {
18+
19+ return @< span >
20+ @if (! string .IsNullOrEmpty (menuItem .Icon ))
21+ {
22+ < Icon Type = " @menuItem.Icon" Theme = " outline" / >
23+ }
24+ < span > @menuItem .Name < / span >
25+ < / span >
26+ ;
27+ }
28+
29+ RenderFragment menuItemTemplate (MenuDataItem [] items , bool isChildren )
30+ {
31+ @if (items == null )
32+ {
33+ return builder => { };
34+ }
2435
25- static readonly RenderFragment < (MenuDataItem [] items , bool isChildren )> menuItemTemplate = context =>
26- @< Template >
27- @if (context .items != null )
36+ return builder =>
37+ {
38+
39+ @foreach (var menuItem in items )
2840 {
29- @foreach (var menuItem in context .items )
41+ if (menuItem .Children != null && ! menuItem .HideChildrenInMenu )
42+ {
43+ builder .AddContent (1 ,
44+ @< SubMenu TitleTemplate = " @title(menuItem)" Key = " @menuItem.Key" >
45+ @menuItemTemplate (menuItem .Children , true )
46+ < / SubMenu > );
47+ }
48+ else if (! menuItem .HideInMenu )
3049 {
31- if (menuItem .Children != null && ! menuItem .HideChildrenInMenu )
32- {
33- < SubMenu TitleTemplate = " @title(menuItem)" Key = " @menuItem.Key" >
34- @menuItemTemplate ((menuItem .Children , true ))
35- < / SubMenu >
36- }
37- else if (! menuItem .HideInMenu )
38- {
39- < MenuItem Key = " @menuItem.Key" RouterLink = " @menuItem.Path" RouterMatch = " @menuItem.Match" > @title (menuItem )< / MenuItem >
40- }
50+ builder .AddContent (1 ,
51+ @< MenuItem Key = " @menuItem.Key" RouterLink = " @menuItem.Path" RouterMatch = " @menuItem.Match" >
52+ @title (menuItem )
53+ < / MenuItem > );
4154 }
4255 }
43- < / Template > ;
56+ };
57+ }
4458}
0 commit comments