Descripción general del componente Angular Toast
El componente Ignite UI for Angular Toast proporciona información y mensajes de advertencia que se ocultan automáticamente, no son interactivos y el usuario no puede descartarlos. Las notificaciones se pueden mostrar en la parte inferior, central o superior de la página.
Angular Toast Example
Getting Started with Ignite UI for Angular Toast
Para comenzar con el componente Ignite UI for Angular Toast, 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 IgxToastModule
en su archivo app.module.ts.
// app.module.ts
...
import { IgxToastModule } from 'igniteui-angular';
// import { IgxToastModule } from '@infragistics/igniteui-angular'; for licensed package
@NgModule({
...
imports: [..., IgxToastModule],
...
})
export class AppModule {}
Alternativamente, a partir de 16.0.0
puede importar IgxToastComponent
como una dependencia independiente.
// home.component.ts
import { IgxToastComponent, IgxButtonDirective } from 'igniteui-angular';
// import { IgxToastComponent, IgxButtonDirective } from '@infragistics/igniteui-angular'; for licensed package
@Component({
selector: 'app-home',
template: `
<button igxButton="contained" (click)="toast.open()">Show notification</button>
<igx-toast #toast>Notification displayed</igx-toast>
`,
styleUrls: ['home.component.scss'],
standalone: true,
imports: [IgxToastComponent, IgxButtonDirective]
/* or imports: [IgxTimePickerComponent, IgxButtonDirective] */
})
export class HomeComponent {
public time: Date;
}
Ahora que ha importado el módulo o componente Ignite UI for Angular Toast, puede comenzar a usar el componente igx-toast
.
Using the Angular Toast
Show Toast
Para mostrar el componente brindis, use su método open()
y llámelo al hacer clic en un botón. Puedes pasar el contenido del brindis dentro del elemento.
<!--sample.component.html-->
<button igxButton="contained" (click)="toast.open()">Show notification</button>
<igx-toast #toast>Notification displayed</igx-toast>
Otra forma de configurar el contenido del brindis es pasar directamente el mensaje como parámetro al método open()
.
<!--sample.component.html-->
<button igxButton="contained" (click)="toast.open('Notification displayed')">Show notification</button>
<igx-toast #toast></igx-toast>
El método open()
también se puede utilizar en el archivo AppComponent para gestionar el valor del mensaje.
// app.component.ts
@ViewChild('toast', { read: IgxToastComponent }) public toast: IgxToastComponent;
public message: any;
public ngOnInit() {
this.message = 'Display message';
}
public showMessage() {
this.toast.open(this.message);
}
Examples
Hide/Auto Hide
Una vez abierto, el brindis desaparece después de un período especificado por la entrada displayTime
que se establece inicialmente en 4000 milisegundos. Este comportamiento está habilitado de forma predeterminada, pero puede cambiarlo configurando autoHide
en false. De esta forma, la tostada queda visible. Usando el método brindis close()
, puede cerrar el componente.
<!--sample.component.html-->
<button igxButton="contained" (click)="toast.open()">Show Toast</button>
<button igxButton="contained" (click)="toast.close()">Hide Toast</button>
<igx-toast #toast [autoHide]="false">Notification displayed</igx-toast>
Si la muestra está configurada correctamente, el brindis aparecerá cuando se haga clic en el botón Mostrar. Para el primer componente, la función de ocultación automática está desactivada y el brindis desaparecerá al hacer clic en el botón "Ocultar". En los otros dos componentes puedes ver en acción cómo pasar diferentes mensajes a través del método open()
y usar la proyección de contenido.
Display Time
Utilice displayTime
y configúrelo en un intervalo en milisegundos para configurar durante cuánto tiempo estará visible el componente del sistema.
<!--sample.component.html-->
<button igxButton="contained" (click)="toast.open()">Show notification</button>
<igx-toast #toast displayTime="1000">Notification displayed</igx-toast>
Si la muestra está configurada correctamente, el sistema se oculta automáticamente más rápido.
Positioning
Utilice la propiedad positionSettings
para configurar dónde aparece el brindis. De forma predeterminada, se muestra en la parte inferior de la página. En el siguiente ejemplo, configuramos la notificación para que aparezca en la posición superior.
<!--sample.component.html-->
<div>
<button igxButton="contained" (click)="open(toast)">Show notification on top</button>
<igx-toast #toast>Notification displayed</igx-toast>
</div>
// sample.component.ts
import { VerticalAlignment } from 'igniteui-angular';
// import { VerticalAlignment } from '@infragistics/igniteui-angular'; for licensed package
...
public open(toast) {
toast.positionSettings.verticalDirection = VerticalAlignment.Top;
toast.open();
}
...
Estilismo
Para comenzar a diseñar el brindis, necesitamos importar el archivo de índice, 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';
Siguiendo el enfoque más simple, creamos un nuevo tema que extiende el toast-theme
y acepta los $background
parámetros , $text-color
and $border-radius
.
$custom-toast-theme: toast-theme(
$background: #dedede,
$text-color: #151515,
$border-radius: 12px
);
Using CSS variables
El último paso es pasar el tema de brindis personalizado:
@include css-vars($custom-toast-theme);
Using mixins
Para diseñar componentes para navegadores más antiguos, como Internet Explorer 11, tenemos que utilizar un enfoque diferente, ya que no admite variables CSS.
Si el componente utiliza Emulated
ViewEncapsulation, es necesario penetrate
esta encapsulación usando::ng-deep
. Para evitar que el tema personalizado se filtre a otros componentes, asegúrese de incluir el selector:host
antes de::ng-deep
:
:host {
::ng-deep {
// Pass the custom toast theme to the `igx-toast` mixin
@include toast($custom-toast-theme);
}
}
Using color palettes
En lugar de codificar los valores de color, como acabamos de hacer, podemos lograr una mayor flexibilidad en términos de colores utilizando las funciones igx-palette
e igx-color
.
igx-palette
genera una paleta de colores basada en los colores primarios y secundarios que se pasan:
$white-color: #dedede;
$black-color: #151515;
$light-toast-palette: palette($primary: $white-color, $secondary: $black-color);
Y luego con igx-color
podemos recuperar fácilmente el color de la paleta.
$custom-toast-theme: toast-theme(
$background: color($light-toast-palette, "primary", 400),
$text-color: color($light-toast-palette, "secondary", 400),
$border-radius: 12px
);
Note
igx-color
e igx-palette
son funciones potentes para generar y recuperar colores. Consulte el tema Palettes
para obtener orientación detallada sobre cómo utilizarlas.
Using schemas
Puede crear una estructura sólida y flexible que se beneficie de los esquemas. Un esquema es una receta de un tema.
Amplíe uno de los dos esquemas predefinidos, que se proporcionan para cada componente, en este caso, esquema light-toast
:
// Extending the toast schema
$light-toast-schema: extend($_light-toast,
(
background: (
color: ("primary", 400)
),
text-color: (
color: ("secondary", 400)
),
border-radius: 12px
)
);
Para aplicar nuestros esquemas personalizados, tenemos que extender uno de los globales (light
u dark
), que básicamente señala los componentes con un esquema personalizado, y luego agregarlo a los respectivos temas de los componentes:
// Extending the global light-schema
$custom-light-schema: extend($light-schema,(
igx-toast: $light-toast-schema
));
// Defining toast with the global light schema
$custom-toast-theme: toast-theme(
$palette: $light-toast-palette,
$schema: $custom-light-schema
);
No olvide incluir los temas de la misma manera que se demostró anteriormente.
API References
Additional Resources
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.