Label & Input

    The Ignite UI for Angular Input and Label directives are used to create single-line or multi-line text elements. They help to cover common scenarios when dealing with form inputs.

    Label & Input Demo

    Usage

    The default styling of the Label and Input directives follows the text fields specification in the Material Design guidelines.

    Note

    To use igxInput and igxLabel, you have to wrap them in an <igx-input-group> container.

    To get started with the Ignite UI for Angular Label & Input, let's first import the IgxInputGroupModule in our app.module.ts file:

    // app.module.ts
    
    ...
    import { IgxInputGroupModule } from 'igniteui-angular';
    
    @NgModule({
        ...
        imports: [..., IgxInputGroupModule],
        ...
    })
    export class AppModule {}
    

    Label & Input

    HTML labels and inputs are the core building blocks of the HTML forms. Here is how you can use the igxLabel and igxInput directives:

    <igx-input-group>
        <input igxInput name="fullName" type="text" />
        <label igxLabel for="fullName">Full Name</label>
    </igx-input-group>
    

    And the result is:

    The igxInput directive could be applied to <input> and <textarea> HTML elements. We support both single-line and multi-line text fields.

    Validation

    Ignite UI for Angular Input directive provides a Material-based styling when you have validation. Let's add required attribute to our input:

    <igx-input-group>
        <input igxInput name="fullName" type="text" required="required" />
        <label igxLabel for="fullName">Full Name</label>
    </igx-input-group>
    

    In the demonstration of the code below you can see we receive an asterisk next to the label and the input turns green/red when we write in it depending on whether the validation passes/fails.

    Data Binding

    Ignite UI for Angular Input supports one-way and two-way data-binding. Let's add a two-way data-binding to our input. Here is the code in our component:

    public user = {
        fullName: ""
    };
    
    

    and in our markup:

    <igx-input-group>
        <input igxInput name="fullName" type="text" [(ngModel)]="user.fullName" required="required" />
        <label igxLabel for="fullName">Full Name</label>
    </igx-input-group>
    

    Input Group

    You can read about the Input Group component in a separate topic here.

    API References

    Additional Resources

    Related topics:

    Our community is active and always welcoming to new ideas.