Migration from Essential JS 1

17 Feb 202214 minutes to read

This article describes the API migration process of Menu component from Essential JS 1 to Essential JS 2.

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" animation-type="@AnimationType.Default"></ej-menu>
Not applicable
Context menu target Property: contextMenuTarget

<ej-menu id="menu" context-menu-target="#target"></ej-menu>
Not applicable
Container element for submenu’s collision Property: container

<ej-menu id="menu" context-menu-target="#target" container="#target"></ej-menu>
Not applicable
Menu items Not applicable Property: items

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
Properties of menu items Property: id, text, imageUrl, children and url

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit">
  <e-menu-child-items>
    <e-menu-child-item text="Cut"></e-menu-child-item>
    <e-menu-child-item text="Copy"></e-menu-child-item>
    <e-menu-child-item text="Paste"></e-menu-child-item>
  </e-menu-child-items>
</e-menu-item>
  <e-menu-item id="view_id" text="View" url= "#"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
Property: id, text, items, iconCss and url

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
List<object> menuItems = new List<object>();
menuItems.Add(new
{
  text = “File”, id= “file_id”
});
menuItems.Add(new
{
  text = “Edit”,
id= “edit_id”,
  items = new List<object>()
  {
    new { text= “Cut”, iconCss= “e-icons e-cut” },
    new { text= “Copy”, iconCss= “e-icons e-copy” },
    new { text= “Paste”, iconCss= “e-icons e-paste” }
  }
});
menuItems.Add(new
{
  text = “view”, id= “view_id”, url= “#”
});
menuItems.Add(new
{
  text = “Help”, id= “help_id”
});
ViewBag.menuItems = menuItems;
Adding custom class Property: cssClass

<ej-menu id="menu" css-class="custom-class"></ej-menu>
Property: cssClass

<ejs-menu id="menu" cssClass="custom-class" items="ViewBag.menuItems"></ejs-menu>
Enables or disables the animation on hover or click on the menu items Property: enableAnimation

<ej-menu id="menu" enable-animation="true"></ej-menu>
Not applicable
Animation settings Not applicable Property: animationSettings

<ejs-menu id="menu" animationSettings="ViewBag.animation" items="ViewBag.menuItems"></ejs-menu>
Root menu items to be aligned center in horizontal menu Property: enableCenterAlign

<ej-menu id="menu" enable-center-align="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="ViewBag.menuItems"></ejs-menu>
RTL Property: enableRTL

<ej-menu id="menu" enable-rtl="true"></ej-menu>
Property: enableRtl

<ejs-menu id="menu" disabled="true" items="ViewBag.menuItems" enableRtl="true"></ejs-menu>
Enables/Disables the separator Property: enableSeparator

<ej-menu id="menu" enable-separator="false"></ej-menu>
Not applicable
Menu Type Property: menuType

<ej-menu id="menu" menu-type="@MenuType.ContextMenu"></ej-menu>
Not applicable
Exclude target for context menu Property: excludeTarget

<ej-menu id="menu" menu-type="@MenuType.ContextMenu" context-menu-target="#target" exclude-target=".inner"></ej-menu>
Not applicable
Fields Property: fields

<ej-menu id="menu">
  <e-menu-fields dataSource="ViewBag.data" id="pid" text="text" parent-id="parent"></e-menu-fields>
</ej-menu>
Property: fields

<ejs-menu id="menu" disabled="true" items="ViewBag.menuItems" fields="ViewBag.menuFields"></ejs-menu>
Height Property: height

<ej-menu id="menu" height="25px"></ej-menu>
Not applicable
Width Property: width

<ej-menu id="menu" width="800px"></ej-menu>
Not applicable
HTML Attributes Property: htmlAttributes

<ej-menu id="menu" html-attribute=""></ej-menu>
Not applicable
Responsive Property: isResponsive

<ej-menu id="menu" is-responsive="true"></ej-menu>
Not applicable
Show item on click Property: openOnClick

<ej-menu id="menu" open-on-click="true"></ej-menu>
Property: showItemOnClick

<ejs-menu id="menu" showItemOnClick="true" items="ViewBag.menuItems"></ejs-menu>
Orientation Property: orientation

<ej-menu id="menu" orientation="@Orientation.Vertical"></ej-menu>
Property: orientation

<ejs-menu id="menu" orientation="Vertical" items="ViewBag.menuItems"></ejs-menu>
Show root level arrows Property: showRootLevelArrows

<ej-menu id="menu" show-root-level-arrows="false"></ej-menu>
Not applicable
Show sub level arrows Property: showSubLevelArrows

<ej-menu id="menu" show-sub-level-arrows="false"></ej-menu>
Not applicable
Sub menu direction Property: subMenuDirection

<ej-menu id="menu" sub-menu-direction="@Direction.Left"></ej-menu>
Not applicable
Title Property: titleText

<ej-menu id="menu" title-text="Title of the Menu"></ej-menu>
Not applicable
Template Not applicable Property: template

<ejs-menu id="menu" items="ViewBag.data" fields="ViewBag.menuFields" template="#menuTemplate"></ejs-menu>
Pop up menu height Property: overflowHeight

<ej-menu id="menu" overflow-height="200px"></ej-menu>
Not applicable

Methods

Behavior API in Essential JS 1 API in Essential JS 2
Disable Method Method: disable

<ej-menu id="menu"></ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.disable();
Not applicable
Disable menu items Method: disableItem

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item text="File"></e-menu-item>
  <e-menu-item text="Edit"></e-menu-item>
  <e-menu-item text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.disableItem(“File”);
Method: enableItems

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.enableItems(“File”, false)
Disable menu items by ID Method: disableItemByID

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.disableItemByID(“file_id”);
Method: enableItems

l<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.enableItems(“file_id”, false, true)
Enable Method Method: enable

<ej-menu id="menu"></ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.enable();
Not applicable
Enable menu items Method: enableItem

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item text="File"></e-menu-item>
  <e-menu-item text="Edit"></e-menu-item>
  <e-menu-item text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.enableItem(“File”);
Method: enableItems

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.enableItems(“File”, true);
Enable menu items by ID Method: enableItemByID

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.enableItemByID(“file_id”);
Method: enableItems

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.enableItems(“file_id”, true, true);
Hide Method Method: hide

<ej-menu id="menu"></ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.hide();
Not applicable
Hide menu items Method: hideItems

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.hideItems([“#help_id”,”#edit_id”]);
Method: hideItems

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.hideItems([“edit_id”,”help_id”], true);
Insert menu items Method: insert

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
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">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.insertAfter([{ id: “view_id”, text: “View” }], “#edit_id”);
Method: insertAfter

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.insertAfter([{ id: “view_id”, text: “View” }], “Edit”);
Insert menu items before the specified menu item Method: insertBefore

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.insertBefore([{ id: “view_id”, text: “View” }], “#help_id”);
Method: insertBefore

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.insertBefore([{ id: “view_id”, text: “View” }], “Help”);
Remove menu items Method: remove

<ej-menu id="menu">
<e-menu-items>
  <e-menu-item id="file_id" text="File"></e-menu-item>
  <e-menu-item id="edit_id" text="Edit"></e-menu-item>
  <e-menu-item id="help_id" text="Help"></e-menu-item>
</e-menu-items>
</ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.remove([“#Edit”]);
Method: removeItems

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
menu.removeItems([“Edit”]);
To show menu Method: show

<ej-menu id="menu"></ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.show();
Not applicable
Destroy method Method: destroy

<ej-menu id="menu"></ej-menu>
var menu = $(“#menu”).data(“ejMenu”);
menu.destroy();
Method: destroy

<ejs-menu id="menu" items="ViewBag.menuItems"></ejs-menu>
var menu = document.getElementById(“menu”).ej2_instances[0];
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" before-open="beforeOpen"></ej-menu>
function beforeOpen(args) {
    /** code block */
}
Events: beforeOpen

<ejs-menu id="menu" items="ViewBag.menuItems" beforeOpen="beforeOpen"></ejs-menu>
function beforeOpen(args) {
    /** code block */
}
Triggers before closing the menu Not applicable Events: beforeClose

<ejs-menu id="menu" items="ViewBag.menuItems" beforeClose="beforeClose"></ejs-menu>
function beforeClose(args) {
    /** code block */
}
Triggers before rendering each menu item Not applicable Events: beforeItemRender

<ejs-menu id="menu" items="ViewBag.menuItems" beforeItemRender="beforeItemRender"></ejs-menu>
function beforeItemRender(args) {
    /** code block */
}
Triggers while selecting the menu item Events: click

<ej-menu id="menu" click="click"></ej-menu>
function click(args) {
    /** code block */
}
Events: select

<ejs-menu id="menu" items="ViewBag.menuItems" select="select"></ejs-menu>
function select(args) {
    /** code block */
}
Triggers after closing the menu Events: close

<ej-menu id="menu" close="close"></ej-menu>
function close(args) {
    /** code block */
}
Events: onClose

<ejs-menu id="menu" items="ViewBag.menuItems" onClose="onClose"></ejs-menu>
function onClose(args) {
    /** code block */
}
Triggers after opening the menu Events: open

<ej-menu id="menu" open="open"></ej-menu>
function open(args) {
    /** code block */
}
Events: onOpen

<ejs-menu id="menu" items="ViewBag.menuItems" onOpen="onOpen"></ejs-menu>
function onOpen(args) {
    /** code block */
}
Triggers once the component rendering is completed Events: create

<ej-menu id="menu" create="create"></ej-menu>
function create(args) {
    /** code block */
}
Events: created

<ejs-menu id="menu" items="ViewBag.menuItems" created="created"></ejs-menu>
function created() {
    /** code block */
}
Triggers once the component is destroyed Events: destroy

<ej-menu id="menu" destroy="destroy"></ej-menu>
function destroy(args) {
    /** code block */
}
Not applicable
Triggers when key down on menu items Events: keydown

<ej-menu id="menu" keydown="keydown"></ej-menu>
function keydown(args) {
    /** code block */
}
Not applicable
Triggers when mouse out from menu items Events: mouseout

<ej-menu id="menu" mouseout="mouseout"></ej-menu>
function mouseout(args) {
    /** code block */
}
Not applicable
Triggers when mouse over the Menu items Events: mouseover

<ej-menu id="menu" mouseover="mouseover"></ej-menu>
function mouseover(args) {
    /** code block */
}
Not applicable
Triggers when overflow popup menu opens Events: overflowOpen

<ej-menu id="menu" overflow-open="overflowOpen"></ej-menu>
function overflowOpen(args) {
    /** code block */
}
Not applicable
Triggers when overflow popup menu closes Events: overflowClose

<ej-menu id="menu" overflow-close="overflowClose"></ej-menu>
function overflowClose(args) {
    /** code block */
}
Not applicable