Descripción general de los componentes del interruptor Angular

    El componente Ignite UI for Angular Switch es un componente de selección de opciones binarias que se comporta de manera similar al componente switch en iOS.

    Angular Switch Example

    Getting Started with Ignite UI for Angular Switch

    Para comenzar con el componente Ignite UI for Angular Switch, primero debe instalar Ignite UI for Angular. En una aplicación Angular existente, escriba el siguiente comando:

    ng add igniteui-angular
    

    Para obtener una introducción completa a la Ignite UI for Angular, lea el tema de introducción.

    El siguiente paso es importar IgxSwitchModule en su archivo app.module.ts.

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

    Alternativamente, a partir de 16.0.0 puede importar IgxSwitchComponent como una dependencia independiente.

    // home.component.ts
    
    import { IgxSwitchComponent } from 'igniteui-angular';
    // import { IgxSwitchComponent } from '@infragistics/igniteui-angular'; for licensed package
    
    @Component({
        selector: 'app-home',
        template: `
        <igx-switch [checked]="true">
            Simple switch
        </igx-switch>
        `,
        styleUrls: ['home.component.scss'],
        standalone: true,
        imports: [IgxSwitchComponent]
    })
    export class HomeComponent {}
    

    Ahora que ha importado el módulo o componente Ignite UI for Angular Switch, puede comenzar a usar el componente igx-switch.

    Using the Angular Switch

    En esencia, el componente del interruptor permite alternar entre el estado de encendido y apagado. El estilo predeterminado se realiza de acuerdo con la especificación de controles de selección en las pautas de Material Design.

    Para obtener un cambio simple como el de la demostración, agregue el siguiente código dentro de la plantilla del componente:

    <igx-switch [checked]="true">
        Simple switch
    </igx-switch>
    

    Switch properties

    Mejoremos el código anterior vinculando las propiedades del interruptor a algunos datos. Digamos que tenemos una serie de objetos de configuración, cada uno con dos propiedades: name y state. Puede vincular la propiedad checked del componente de conmutación a la propiedad de estado del objeto subyacente. De manera análoga, puede vincular la propiedad del valor al nombre.

    // toggle.component.ts
    ...
    public settings = [
        { name: 'WiFi', state: false},
        { name: 'Bluetooth', state: true},
        { name: 'Device visibility', state: false}
    ];
    

    Mejore la plantilla del componente agregando un modificador para cada configuración y luego vinculando la propiedad correspondiente:

    <!--toggle.component.html-->
    
    <igx-switch *ngFor="let setting of settings" [checked]="setting.state">
        {{ setting.name }}
    </igx-switch>
    

    Añade algunos estilos:

    :host {
        display: flex;
        flex-flow: column nowrap;
        padding: 16px;
    }
    
    igx-switch {
        margin-top: 24px;
    }
    

    Y el resultado final debería ser algo así:

    Label Positioning

    Puede colocar la etiqueta usando la propiedad labelPosition del interruptor:

    <igx-switch labelPosition="before"></igx-switch>
    

    Si no se establece labelPosition, la etiqueta se colocará después del cambio.

    Estilismo

    Para comenzar a diseñar el interruptor, necesitamos importar el archivo index, donde se encuentran todas las funciones del tema y los mixins de componentes:

    @use "igniteui-angular/theming" as *;
    
    // IMPORTANT: Prior to Ignite UI for Angular version 13 use:
    // @import '~igniteui-angular/lib/core/styles/themes/index';
    

    Luego, creamos un nuevo tema que extiende el switch-theme y usamos algunos de sus parámetros para diseñar los elementos del cambio:

    // in styles.scss
    $custom-switch-theme: switch-theme(
        $thumb-on-color: #ECAA53,
        $track-on-color: #F0CB9C
    );
    

    Including Themes

    El último paso es incluir el tema del componente en nuestra aplicación.

    Si $legacy-support está configurado en true, incluya el tema del componente así:

     @include switch($custom-switch-theme);
    
    Note

    Si el componente utiliza una ViewEncapsulation Emulated, es necesario penetrate esta encapsulación usando::ng-deep

    :host {
        ::ng-deep {
            @include switch($custom-switch-theme);
        }
    }
    

    Si $legacy-support está configurado en false (predeterminado), incluya las variables CSS del componente así:

    @include css-vars($custom-switch-theme);
    
    Note

    Si el componente utiliza una ViewEncapsulation Emulated, aún debe usar:host porque necesita un selector global para anular las variables.

    :host {
        @include css-vars($custom-switch-theme);
    }
    

    Demo

    API References

    Theming Dependencies

    Additional Resources

    Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.