Il existe deux façons d'ouvrir mon composant, d'une barre de navigation et d'une autre consiste à ouvrir le même composant dans la boîte de dialogue. Il n'y a qu'un formulaire de soumission à l'intérieur du composant.
Je veux que la boîte de dialogue soit automatiquement fermée lorsque l'utilisateur soumet le formulaire. Tout le bon jusqu'à là ici. Les problèmes réels se produisent maintenant, si l'instruction utilise après la fermeture de la boîte de dialogue
déclaration de fermeture après la soumission de formulaire
La boîte de dialogue est fermée avec succès, mais le même composant cesse de fonctionner à partir de la liaison de navigation, fonctionne sans aucun problème si je l'ouvre à l'aide de la boîte de dialogue, mais ne s'ouvre jamais, je clique sur le lien de navigation et l'erreur suivante se produit. p> et voici comment j'invoque ma boîte de dialogue p> J'ai déjà essayé d'inclure les bibliothèques de matériaux dans si je supprime le
sur demande, voici mon TS code> fichier p>
this.dialogref.close (); code> p>
app.module.ts code> et
composant code> fichier. et essayé aussi
Fournisseurs: [{Fournissez: Mat_dialog_Data, Usevalue: {}}] code> dans le fichier de module du composant p>
Public Dialogref: MatdialogRef
app.module.ts code> fichier: p>
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterModule, Routes } from '@angular/router';
import { MatMomentDateModule } from '@angular/material-moment-adapter';
// import { MatButtonModule } from '@angular/material/button';
import { MatButtonModule, MatFormFieldModule, MatInputModule, MatRippleModule } from '@angular/material';
import { MatIconModule } from '@angular/material/icon';
import { MatDialogModule, MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';
import { TranslateModule } from '@ngx-translate/core';
import { MatSelectModule } from '@angular/material';
import { FormsModule } from '@angular/forms';
import { FlexLayoutModule } from '@angular/flex-layout';
import 'hammerjs';
import { FuseModule } from '@fuse/fuse.module';
import { FuseSharedModule } from '@fuse/shared.module';
import { FuseProgressBarModule, FuseSidebarModule, FuseThemeOptionsModule } from '@fuse/components';
import { fuseConfig } from 'app/fuse-config';
import { AppComponent } from 'app/app.component';
import { LayoutModule } from 'app/layout/layout.module';
import { SampleModule } from 'app/main/sample/sample.module';
import { AddSalesPersonComponent } from './layout/components/Sales/add-sales-person/add-sales-person.component';
import { LoginComponent } from './layout/components/login/login.component';
import { MasterLayoutComponent } from './master-layout/master-layout.component';
import { NewLoanComponent } from './layout/components/loan/new-loan/new-loan.component';
import { ListSalesComponent } from './layout/components/Sales/list-sales/list-sales.component';
import { NewCustomerComponent } from './layout/components/customer/new-customer/new-customer.component';
import { CustomerListComponent } from './layout/components/customer/customer-list/customer-list.component';
import { NewOrganizationComponent } from './layout/components/organization/new-organization/new-organization.component';
import { ListOrganizationComponent } from './layout/components/organization/list-organization/list-organization.component';
import { NewProductComponent } from './layout/components/products/new-product/new-product.component';
import { ProductListComponent } from './layout/components/products/product-list/product-list.component';
import { NewAdminComponent } from './layout/components/admin/new-admin/new-admin.component';
import { ListAdminComponent } from './layout/components/admin/list-admin/list-admin.component';
import { LoanListComponent } from './layout/components/loan/loan-list/loan-list.component';
import { ReceivePaymentComponent } from './layout/components/payments/receive-payment/receive-payment.component';
import { MakePaymentComponent } from './layout/components/payments/make-payment/make-payment.component';
const appRoutes: Routes = [
{
path: '',
component: MasterLayoutComponent,
children: [
{
path: '',
redirectTo: '/login',
pathMatch: 'full'
},
{
path: 'saveSalesPerson',
component: AddSalesPersonComponent
},
{
path: 'searchsalesperson',
component: ListSalesComponent
},
{
path: 'newcustomer',
component: NewCustomerComponent
},
{
path: 'searchcustomer',
component: CustomerListComponent
},
{
path: 'neworganization',
component: NewOrganizationComponent
},
{
path: 'searchorganization',
component: ListOrganizationComponent
},
{
path: 'newproduct',
component: NewProductComponent
},
{
path: 'searchpoduct',
component: ProductListComponent
},
{
path: 'newloan',
component: NewLoanComponent
},
{
path: 'searchLoan',
component: LoanListComponent
},
{
path: 'newadmin',
component: NewAdminComponent
},
{
path: 'searchadmin',
component: ListAdminComponent
},
{
path: 'receivePayments',
component: ReceivePaymentComponent
},
{
path: 'makePayments',
component: MakePaymentComponent
},
]
},
{
path: 'login',
component: LoginComponent,
},
{
path: '**',
redirectTo: 'salesperson'
}
];
@NgModule({
imports: [
BrowserModule,
FlexLayoutModule,
MatButtonModule,
MatFormFieldModule,
FormsModule,
MatInputModule,
MatRippleModule,
MatSelectModule,
BrowserAnimationsModule,
HttpClientModule,
MatDialogModule,
RouterModule.forRoot(appRoutes),
TranslateModule.forRoot(),
// Material moment date module
MatMomentDateModule,
// Material
MatButtonModule,
MatIconModule,
// Fuse modules
FuseModule.forRoot(fuseConfig),
FuseProgressBarModule,
FuseSharedModule,
FuseSidebarModule,
FuseThemeOptionsModule,
// App modules
LayoutModule,
SampleModule
],
declarations: [
AppComponent,
MasterLayoutComponent
],
exports: [
MatButtonModule,
MatFormFieldModule,
MatInputModule,
MatRippleModule,
],
bootstrap: [
AppComponent
],
providers: [{ provide: MAT_DIALOG_DATA, useValue: {} }]
})
export class AppModule {
}
3 Réponses :
. P> MATDialogModule CODE> MODIULE n'est pas là-bas dans Vous importation de tableau dans
app.module.ts code> Essayez d'importer
MATDialog code> et
MATDialogModule code> dans vous app.module.ts p>
Je viens de l'importer et ça me donne toujours la même erreur.
Mise à jour de la réponse. Essayez d'ajouter les trois d'entre eux
J'ai essayé et maintenant l'erreur non capturée: valeur inattendue 'matdialogref' importée par le module "AppModule". S'il vous plaît ajouter une annotation @ngModule code> une erreur indique. J'ai mis à jour mon
app.module.ts code> fichier en question, s'il vous plaît jeter un oeil
Je suis désolé juste supprimer matdialogref code> à partir du module.ts seulement et voir. Ça va faire.
fait la même chose, la demande est exécutée, mais mon problème est toujours là
Laissez-nous Continuez cette discussion en chat .
Vous devez ajouter EDIT: strong>
Dans votre fichier par celui-ci: (Import correct) p> matdialogmodule code> à
Importations code> dans votre déclaration de module:
app.module.ts code> Pourriez-vous remplacer cette ligne: p>
import {MatDialogModule, MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material';
Je l'ai déjà importé, mais cela me donne toujours la même erreur
Essayez de l'importer de '@ angular / matériau' pas '@ angulaire / matériau / boîte de dialogue'
@Lint l'avez-vous essayé?
J'ai fait et j'ai mis à jour le fichier code> dans ma question aussi, s'il vous plaît jeter un oeil
J'ai vérifié votre fichier app.module.ts code> Vous importation de vos dépendances à partir de
'@ angular / matériau / boîte de dialogue' code> Veuillez vérifier la section Modifier dans ma réponse
@ic_paty Importation de la boîte de dialogue Code> Le point d'entrée doit être le moyen préféré de l'importation des composants / modules liés à la boîte de dialogue à partir de matières angulaires V9 et de l'équipe éliminera la prise en charge des composants / modules d'importation de la saisie racine. point de v9 en avant.
Merci à tous ceux qui aident les mains. Bien qu'aucune de la solution ci-dessus ne fonctionne, mais vous m'avez motivé beaucoup d'essayer différentes autres solutions et la solution qui a fonctionné pour moi était d'ajouter p>
dans mon Fournisseurs: [{Fournissez: MATDialogRef, Usevalue: {}}] Code> P>
app.module.ts code> fichier p>
C'est intéressant, mais pouvez-vous s'il vous plaît laissez-moi savoir ce que signifie cette navigation? Ou pouvez-vous fournir un lien Stackblitz?
Avez-vous ajouté
matdialogmodule code> à votre module? Montrez-nous votre fichier de module
Stackblitz serait un problème, car mon application utilise de nombreuses bibliothèques différentes, la navigation signifie un simple lien de navigation régulier.
@benshabatnoam oui évidemment
Montrez-nous le code. Selon l'erreur, je pense qu'il y a quelque chose qui ne va pas dans le tableau des fournisseurs dans le module
Avez-vous votre composant dans un autre composant HTML?
oui @benshabatnoam composant est dans un autre fichier HTML
@Selakan j'ai déjà fourni mon code
Pouvez-vous me montrer l'application.Module.ts que vous ouvrez la boîte de dialogue de la boîte de dialogue MAT et la fermeture ne semble pas avoir de problème
@Selakan oui je viens de modifier la question, s'il vous plaît jeter un oeil maintenant
Cochez Essayez d'ajouter le MATDialogModule dans l'application Module.ts