Visão geral do componente de comutação Angular
O componente Ignite UI for Angular Switch é um componente de seleção de escolha binária que se comporta de forma semelhante ao componente Switch no iOS.
Angular Switch Example
Getting Started with Ignite UI for Angular Switch
Para começar a usar o componente Ignite UI for Angular Switch, primeiro você precisa instalar Ignite UI for Angular. Em um aplicativo Angular existente, digite o seguinte comando:
ng add igniteui-angular
Para obter uma introdução completa ao Ignite UI for Angular, leia o tópico de introdução.
O próximo passo é importar o IgxSwitchModule
no seu arquivo 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 {}
Como alternativa, a partir da 16.0.0
você pode importar o IgxSwitchComponent
como uma dependência autônoma.
// 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 {}
Agora que você importou o módulo ou componente Ignite UI for Angular Switch, você pode começar a usar o componente igx-switch
.
Using the Angular Switch
Em seu núcleo, o componente switch permite alternar entre estado ligado/desligado. O estilo padrão é feito de acordo com a especificação de controles de seleção nas diretrizes do Material Design.
Para obter um switch simples como o da demonstração, adicione o seguinte código dentro do modelo do componente:
<igx-switch [checked]="true"> Simple switch </igx-switch>
Switch properties
Vamos aprimorar o código acima vinculando as propriedades switch a alguns dados. Digamos que temos uma matriz de objetos settings, cada um com duas propriedades -name
e state
. Você pode vincular a propriedade checked
do componente switch à propriedade state do objeto subjacente. Analogicamente, você pode vincular a propriedade value ao name.
// toggle.component.ts
...
public settings = [
{ name: 'WiFi', state: false},
{ name: 'Bluetooth', state: true},
{ name: 'Device visibility', state: false}
];
Melhore o modelo do componente adicionando uma opção para cada configuração e, em seguida, vinculando a propriedade correspondente:
<!--toggle.component.html-->
<igx-switch *ngFor="let setting of settings" [checked]="setting.state">
{{ setting.name }}
</igx-switch>
Adicione alguns estilos:
:host {
display: flex;
flex-flow: column nowrap;
padding: 16px;
}
igx-switch {
margin-top: 24px;
}
E o resultado final deve ser algo assim:
Label Positioning
Você pode posicionar o rótulo usando a propriedade labelPosition
do switch:
<igx-switch labelPosition="before"></igx-switch>
Se labelPosition
não estiver definido, o rótulo será posicionado após o switch.
Estilização
Para começar a estilizar o switch, precisamos importar o arquivo index
, onde todas as funções do tema e mixins de componentes estão localizados:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
Em seguida, criamos um novo tema que estende o switch-theme
e usamos alguns de seus parâmetros para estilizar os itens do switch:
$custom-switch-theme: switch-theme(
$thumb-on-color: #ecaa53,
$track-on-color: #f0cb9c,
);
O último passo é incluir o tema do componente em nosso aplicativo.
@include css-vars($custom-switch-theme);
Demo
API References
Theming Dependencies
Additional Resources
Nossa comunidade é ativa e sempre acolhedora para novas ideias.