Ej1 api migration in Angular Menu component
12 Sep 202513 minutes to read
This guide helps you migrate from Essential® JS 1 (EJ1) to Essential® JS 2 (EJ2) for the Angular Menu component. It outlines deprecated features, renamed APIs, and new equivalents to ensure a smooth transition.
Properties
| Behavior | API in Essential® JS 1 | API in Essential® JS 2 | 
|---|---|---|
| Animation type on hover or click on the menu items | 
Property: animationType <ej-menu id="menu" [animationType]="animationType"></ej-menu> animationType: any = ej.AnimationType.Default;  | 
      Not applicable | 
| Context menu target | 
Property: contextMenuTarget <ej-menu id="menu" contextMenuTarget="#target"></ej-menu>
 | 
      Not applicable | 
| Container element for submenu’s collision | 
Property: container <ej-menu id="menu" contextMenuTarget="#target" container="#target"></ej-menu>
 | 
      Not applicable | 
| Menu items | Not applicable | 
Property: items <ejs-menu id="menu" [items]="menuItems"></ejs-menu> menuItems: MenuItemModel[] = [ { text: “File”, id: “file_id” }, { text: “Edit”, id: “edit_id”, items: [ { text” “Cut”, iconCss: “e-icons e-cut” }, { text: “Copy”, iconCss: “e-icons e-copy” }, { text: “Paste”, iconCss: “e-icons e-paste” } ] }, { text: “view”, id: “view_id”, url: “#” }, { text: “Help”, id: “help_id” } ];  | 
    
| Adding custom class | 
Property: cssClass <ej-menu id="menu" cssClass="custom-class"></ej-menu>
 | 
      
Property: cssClass <ejs-menu id="menu" cssClass="custom-class" [items]="menuItems"></ejs-menu>
 | 
    
| Enables or disables the animation on hover or click on the menu items | 
Property: enableAnimation <ej-menu id="menu" [enableAnimation]="true"></ej-menu>
 | 
      Not applicable | 
| Animation settings | Not applicable | 
Property: animationSettings <ejs-menu id="menu" [animationSettings]="animation" [items]="menuItems"></ejs-menu> animation: MenuAnimationSettings = { effect: “FadeIn” }  | 
    
| Root menu items to be aligned center in horizontal menu | 
Property: enableCenterAlign <ej-menu id="menu" [enableCenterAlign]="true"></ej-menu>
 | 
      Not applicable | 
| Disabled state | 
Property: enabled <ej-menu id="menu" [enabled]="false"></ej-menu>
 | 
      
Property: disabled <ejs-menu id="menu" [disabled]="true" [items]="menuItems"></ejs-menu>
 | 
    
| RTL | 
Property: enableRTL <ej-menu id="menu" [enableRTL]="true"></ej-menu>
 | 
      
Property: enableRtl <ejs-menu id="menu" [items]="menuItems" [enableRtl]="true"></ejs-menu>
 | 
    
| Enables/Disables the separator | 
Property: enableSeparator <ej-menu id="menu" [enableSeparator]="false"></ej-menu>
 | 
      Not applicable | 
| Menu Type | 
Property: menuType <ej-menu id="menu" [menuType]="menuType"></ej-menu> menuType: any = ej.MenuType.ContextMenu;  | 
      Not applicable | 
| Exclude target for context menu | 
Property: excludeTarget <ej-menu id="menu" [menuType]="menuType" contextMenuTarget="#target" excludeTarget=".inner"></ej-menu>
 | 
      Not applicable | 
| Fields | 
Property: fields <ej-menu id="menu" [field]="menuFields">/ej-menu> menuFields: Object = { dataSource: this.data, parentId: “parentId”, id: “id”, text: “text” };  | 
      
Property: fields <ejs-menu id="menu" disabled="true" [items]="menuItems" [fields]="menuFields"></ejs-menu> menuFields: Object = { text: [“text”], children: [“children”] };  | 
    
| Height | 
Property: height <ej-menu id="menu" [height]="50"></ej-menu>
 | 
      Not applicable | 
| Width | 
Property: width <ej-menu id="menu" [width]="800"></ej-menu>
 | 
      Not applicable | 
| HTML Attributes | 
Property: htmlAttributes <ej-menu id="menu" [htmlAttribute]="attributes"></ej-menu>
 | 
      Not applicable | 
| Responsive | 
Property: isResponsive <ej-menu id="menu" [isResponsive]="true"></ej-menu>
 | 
      Not applicable | 
| Show item on click | 
Property: openOnClick <ej-menu id="menu" [openOnClick]="true"></ej-menu>
 | 
      
Property: showItemOnClick <ejs-menu id="menu" [showItemOnClick]="true" [items]="menuItems"></ejs-menu>
 | 
    
| Orientation | 
Property: orientation <ej-menu id="menu" orientation="vertical"></ej-menu>
 | 
      
Property: orientation <ejs-menu id="menu" orientation="Vertical" [items]="menuItems"></ejs-menu>
 | 
    
| Show root level arrows | 
Property: showRootLevelArrows <ej-menu id="menu" [showRootLevelArrows]="false"></ej-menu>
 | 
      Not applicable | 
| Show sub level arrows | 
Property: showSubLevelArrows <ej-menu id="menu" [showSubLevelArrows]="false"></ej-menu>
 | 
      Not applicable | 
| Sub menu direction | 
Property: subMenuDirection <ej-menu id="menu" [subMenuDirection]="direction"></ej-menu> direction: any = ej.Direction.Left;  | 
      Not applicable | 
| Title | 
Property: titleText <ej-menu id="menu" titleText="Title of the Menu"></ej-menu>
 | 
      Not applicable | 
| Template | Not applicable | 
Property: template <ejs-menu id="menu" [items]="data" [fields]="menuFields" template="#menuTemplate"></ejs-menu>
 | 
    
| Pop up menu height | 
Property: overflowHeight <ej-menu id="menu" [overflowHeight]="200"></ej-menu>
 | 
      Not applicable | 
Methods
| Behavior | API in Essential® JS 1 | API in Essential® JS 2 | 
|---|---|---|
| Disable Method | 
Method: disable <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.disable();  | 
      Not applicable | 
| Disable menu items | 
Method: disableItem <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.disableItem(“File”);  | 
      
Method: enableItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItems(“File”, false)  | 
    
| Disable menu items by ID | 
Method: disableItemByID <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.disableItemByID(“file_id”);  | 
      
Method: enableItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItems(“file_id”, false, true)  | 
    
| Enable Method | 
Method: enable <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.enable();  | 
      Not applicable | 
| Enable menu items | 
Method: enableItem <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItem(“File”);  | 
      
Method: enableItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItems(“File”, true);  | 
    
| Enable menu items by ID | 
Method: enableItemByID <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItemByID(“file_id”);  | 
      
Method: enableItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.enableItems(“file_id”, true, true);  | 
    
| Hide Method | 
Method: hide <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.hide();  | 
      Not applicable | 
| Hide menu items | 
Method: hideItems <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.hideItems([“#help_id”,”#edit_id”]);  | 
      
Method: hideItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.hideItems([“edit_id”,”help_id”], true);  | 
    
| Insert menu items | 
Method: insert <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.insert([{ id: “view_id”, text: “View” }], “#edit_id”);  | 
      Not applicable | 
| Insert menu items after the specified menu item | 
Method: insertAfter <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.insertAfter([{ id: “view_id”, text: “View” }], “#edit_id”);  | 
      
Method: insertAfter <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.insertAfter([{ id: “view_id”, text: “View” }], “Edit”);  | 
    
| Insert menu items before the specified menu item | 
Method: insertBefore <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.insertBefore([{ id: “view_id”, text: “View” }], “#help_id”);  | 
      
Method: insertBefore <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.insertBefore([{ id: “view_id”, text: “View” }], “Help”);  | 
    
| Remove menu items | 
Method: remove <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.remove([“#Edit”]);  | 
      
Method: removeItems <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.removeItems([“Edit”]);  | 
    
| To show menu | 
Method: show <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.show();  | 
      Not applicable | 
| Destroy method | 
Method: destroy <ej-menu id="menu" #menu [fields.dataSource]="data"></ej-menu>@ViewChild(‘menu’) public menu: MenuComponent; this.menu.destroy();  | 
      
Method: destroy <ejs-menu id="menu" #menu [items]="menuItems"></ejs-menu> @ViewChild(‘menu’) public menu: MenuComponent; this.menu.destroy();  | 
    
Events
| Behavior | API in Essential® JS 1 | API in Essential® JS 2 | 
|---|---|---|
| Triggers before opening the menu | 
Events: beforeOpen <ej-menu id="menu" (beforeOpen)="beforeOpen($event)"></ej-menu> beforeOpen(args) { /** code block */ }  | 
      
Events: beforeOpen <ejs-menu id="menu" [items]="menuItems" (beforeOpen)="beforeOpen($event)"></ejs-menu> beforeOpen(args) { /** code block */ }  | 
    
| Triggers before closing the menu | Not applicable | 
Events: beforeClose <ejs-menu id="menu" [items]="menuItems" (beforeClose)="beforeClose($event)"></ejs-menu> beforeClose(args) { /** code block */ }  | 
    
| Triggers before rendering each menu item | Not applicable | 
Events: beforeItemRender <ejs-menu id="menu" [items]="menuItems" (beforeItemRender)="beforeItemRender($event)"></ejs-menu> beforeItemRender(args) { /** code block */ }  | 
    
| Triggers while selecting the menu item | 
Events: click <ej-menu id="menu" (click)="click($event)"></ej-menu> click(args) { /** code block */ }  | 
      
Events: select <ejs-menu id="menu" [items]="menuItems" (select)="select($event)"></ejs-menu> select(args) { /** code block */ }  | 
    
| Triggers after closing the menu | 
Events: close <ej-menu id="menu" (close)="close($event)"></ej-menu> close(args) { /** code block */ }  | 
      
Events: onClose <ejs-menu id="menu" [items]="menuItems" (onClose)="onClose($event)"></ejs-menu> onClose(args) { /** code block */ }  | 
    
| Triggers after opening the menu | 
Events: open <ej-menu id="menu" (open)="open($event)"></ej-menu> open(args) { /** code block */ }  | 
      
Events: onOpen <ejs-menu id="menu" [items]="menuItems" (onOpen)="onOpen($event)"></ejs-menu> onOpen(args) { /** code block */ }  | 
    
| Triggers once the component rendering is completed | 
Events: create <ej-menu id="menu" (create)="create($event)"></ej-menu> create(args) { /** code block */ }  | 
      
Events: created <ejs-menu id="menu" [items]="menuItems" (created)="created()"></ejs-menu> created() { /** code block */ }  | 
    
| Triggers once the component is destroyed | 
Events: destroy <ej-menu id="menu" (destroy)="destroy($event)"></ej-menu> destroy(args) { /** code block */ }  | 
      Not applicable | 
| Triggers when key down on menu items | 
Events: keydown <ej-menu id="menu" (keydown)="keydown($event)"></ej-menu> keydown(args) { /** code block */ }  | 
      Not applicable | 
| Triggers when mouse out from menu items | 
Events: mouseout <ej-menu id="menu" (mouseout)="mouseout($event)"></ej-menu> mouseout(args) { /** code block */ }  | 
      Not applicable | 
| Triggers when mouse over the Menu items | 
Events: mouseover <ej-menu id="menu" (mouseover)="mouseover($event)"></ej-menu> mouseover(args) { /** code block */ }  | 
      Not applicable | 
| Triggers when overflow popup menu opens | 
Events: overflowOpen <ej-menu id="menu" (overflowOpen)="overflowOpen($event)"></ej-menu> overflowOpen(args) { /** code block */ }  | 
      Not applicable | 
| Triggers when overflow popup menu closes | 
Events: overflowClose <ej-menu id="menu" (overflowClose)="overflowClose($event)"></ej-menu> overflowClose(args) { /** code block */ }  | 
      Not applicable |