Angular List - Customize Item Appearance
For a minor customization of List items, you can define specific fields in item data objects. For example, the following code generates three items: each item has a badge, the second is disabled and the third is hidden.
jQuery
const fruits = [
    { text: "Apples", badge: 10 },
    { text: "Oranges", badge: 12, disabled: true },
    { text: "Lemons", badge: 15, visible: false }
];
$(function() {
    $("#listContainer").dxList({
        dataSource: fruits
    });
});Angular
import { DxListModule } from "devextreme-angular";
// ...
export class AppComponent {
    fruits = [
        { text: "Apples", badge: 10 },
        { text: "Oranges", badge: 12, disabled: true },
        { text: "Lemons", badge: 15, visible: false }
    ];
}
@NgModule({
    imports: [
        // ...
        DxListModule
    ],
    // ...
})
<dx-list
    [dataSource]="fruits">
</dx-list>Vue
<template>
    <DxList
        :data-source="fruits"
    />
</template>
<script>
import 'devextreme/dist/css/dx.light.css';
import DxList from 'devextreme-vue/list';
const fruits = [
    { text: "Apples", badge: 10 },
    { text: "Oranges", badge: 12, disabled: true },
    { text: "Lemons", badge: 15, visible: false }
];
export default {
    components: {
        DxList
    },
    data() {
        return {
            fruits
        }
    }
}
</script>React
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
import List from 'devextreme-react/list';
const fruits = [
    { text: "Apples", badge: 10 },
    { text: "Oranges", badge: 12, disabled: true },
    { text: "Lemons", badge: 15, visible: false }
];
export default function App() {
    return (
        <List
            dataSource={fruits}
        />
    );
}If you need a more flexible solution, define an itemTemplate.
jQuery
const fruits = [
    { name: "Apples", count: 10 },
    { name: "Oranges", count: 12 },
    { name: "Lemons", count: 15 },
    { name: "Pears", count: 20 },
    { name: "Pineapples", count: 3 }
];
$(function() {
    $("#listContainer").dxList({
        dataSource: fruits,
        itemTemplate: function(data, _, element) {
            element.append(
                $("<b>").text(data.fruit), $("<br />"),
                $("<p>").text(data.count).css("margin", 0)
            )
        }
    });
});Angular
<dx-list
    [dataSource]="fruits"
    itemTemplate="listItem">
    <div *dxTemplate="let item of 'listItem'">
        <b>{{item.name}}</b><br />
        <p style="margin:0px">{{item.count}}</p>
    </div>
</dx-list>
import { DxListModule } from "devextreme-angular";
// ...
export class AppComponent {
    fruits = [
        { name: "Apples", count: 10 },
        { name: "Oranges", count: 12 },
        { name: "Lemons", count: 15 },
        { name: "Pears", count: 20 },
        { name: "Pineapples", count: 3 }
    ];
}
@NgModule({
    imports: [
        // ...
        DxListModule
    ],
    // ...
})Vue
<template>
    <DxList
        :data-source="fruits"
        item-template="list-item">
        <template #list-item="{ data }">
            <div>
                <b>{{ data.name }}</b>
                <br />
                <p style="margin:0px">{{ data.count }}</p>
            </div>
        </template>
    </DxList>
</template>
<script>
import 'devextreme/dist/css/dx.light.css';
import DxList from 'devextreme-vue/list';
const fruits = [
    { name: "Apples", count: 10 },
    { name: "Oranges", count: 12 },
    { name: "Lemons", count: 15 },
    { name: "Pears", count: 20 },
    { name: "Pineapples", count: 3 }
];
export default {
    components: {
        DxList
    },
    data() {
        return {
            fruits
        }
    }
}
</script>React
import React from 'react';
import 'devextreme/dist/css/dx.light.css';
import List from 'devextreme-react/list';
const fruits = [
    { name: "Apples", count: 10 },
    { name: "Oranges", count: 12 },
    { name: "Lemons", count: 15 },
    { name: "Pears", count: 20 },
    { name: "Pineapples", count: 3 }
];
const ListItem = (data) => {
    return (
        <div>
            <b>{ data.name }</b>
            <br />
            <p style={{ margin: '0px' }}>{ data.count }</p>
        </div>
    );
};
export default function App() {
    return (
        <List
            dataSource={fruits}
            itemRender={ListItem}
        />
    );
}jQuery
You can also customize an individual List item. For this purpose, declare a template for this item as a script and pass its id to the template field. 
<script id="individualTemplate" type="text/html">
    <!-- ... -->
</script>
const fruits = [
    { name: "Apples", count: 10 },
    { name: "Oranges", count: 12, template: $("#individualTemplate") },
    // ...
];Built-In Template Engine Demo 3rd-Party Template Engine Demo
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.