En un proyecto tenemos múltiples Diálogos. Ahora, quiero establecer las variables globales de samen en DialogOption.

Encontré: https://material.angular.io/components/dialog/overview y este código:

@NgModule({
  providers: [
    {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}
  ]
})

Apliqué este código con algún otro, pero no funciona. La configuración no se aplica en absoluto.

¿Alguien funciona esta configuración?

5
Johan Walhout 10 sep. 2018 a las 13:40

4 respuestas

La mejor respuesta

Eso funciona ... Vaya aquí y agréguelos para verificarlo.

import {MAT_DIALOG_DEFAULT_OPTIONS} from '@angular/material';

....

providers: [
  {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: false}}
]
4
Fartab 10 sep. 2018 a las 11:06
import {
    MAT_DIALOG_DEFAULT_OPTIONS
  } from '@angular/material';

 @NgModule({
    providers: [  
        {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: 
        {hasBackdrop: true, direction: 'ltr',height:'500px'}}
    ]
 })

Agregar así debería afectar las opciones predeterminadas,

Ejemplos de valores:

HasBackdrop: true // no permitirá cerrar el diálogo al hacer clic fuera de él.

Direction: 'ltr' // establece dónde comenzará el texto, de izquierda a derecha.

0
Nenad Radak 24 dic. 2018 a las 19:13

Gracias a @Fartab, vi mi problema, el ejemplo angular abre el diálogo de la siguiente manera:

const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
  width: '250px',
  data: {name: this.name, animal: this.animal}
});

Pero estoy abierto el diálogo de esta manera:

const dialogConfig = new MatDialogConfig();
dialogConfig.width = '600px';
dialogConfig.autoFocus = true;
dialogConfig.data = {
  customer: data,
};
const dialogRef = this.dialog.open(DeleteFtpCustomerComponent, dialogConfig);

Creo que cada vez que abro un cuadro de diálogo, la configuración se carga desde una nueva configuración. Entonces cambié la apertura del diálogo al ejemplo de Fartab. Ahora está funcionando :)

2
Johan Walhout 10 sep. 2018 a las 12:12

El material angular proporciona valores predeterminados prácticos para varias de sus opciones de configuración, como closeOnNavigation, autoFocus, etc.

Si solo desea sobrescribir algunos de los elementos de configuración, dejando el resto como valores predeterminados, puede proporcionar MAT_DIALOG_DEFAULT_OPTIONS de esta manera:


import {MAT_DIALOG_DEFAULT_OPTIONS, MatDialogConfig} from '@angular/material';

...

  providers: [
    {
      provide: MAT_DIALOG_DEFAULT_OPTIONS,
      useValue: {
        ...new MatDialogConfig(),
        hasBackdrop: false,
      } as MatDialogConfig,
    }
  ]

...

Con este enfoque, solo necesita especificar las opciones de configuración que desea cambiar. El resto tomará sus valores predeterminados.

7
Empereol 13 may. 2019 a las 20:28