Angular Menu - Customize Item Appearance

For a minor customization of Menu items, you can define specific fields in item data objects. For example, the following code generates two root items with two drop-down menu items each. The root items are supplied with icons.

HTML
TypeScript
  • <dx-menu
  • [items]="menuItems">
  • </dx-menu>
  • import { DxMenuModule } from 'devextreme-angular';
  • // ...
  • export class AppComponent {
  • menuItems = [{
  • text: 'Upload', icon: 'upload',
  • items: [
  • { text: 'From your computer' },
  • { text: 'From a cloud service' }
  • ]
  • }, {
  • text: 'Share', icon: 'message',
  • items: [
  • { text: 'Log in with Facebook' },
  • { text: 'Log in with Twitter' }
  • ]
  • }];
  • }
  • @NgModule({
  • imports: [
  • // ...
  • DxMenuModule
  • ],
  • // ...
  • })

If you need a more flexible solution, define an itemTemplate.

HTML
TypeScript
  • <dx-menu
  • [items]="menuItems"
  • itemTemplate="items">
  • <div *dxTemplate="let item of 'items'">
  • <i>{{item.text}}</i>
  • </div>
  • </dx-menu>
  • import { DxMenuModule } from 'devextreme-angular';
  • // ...
  • export class AppComponent {
  • menuItems = [{
  • text: 'Upload',
  • items: [
  • { text: 'From your computer' },
  • { text: 'From a cloud service' }
  • ]
  • }, {
  • text: 'Share',
  • items: [
  • { text: 'Log in with Facebook' },
  • { text: 'Log in with Twitter' }
  • ]
  • }];
  • }
  • @NgModule({
  • imports: [
  • // ...
  • DxMenuModule
  • ],
  • // ...
  • })
See Also