【问题标题】:How to correctly configure MatDialog?如何正确配置 MatDialog?
【发布时间】:2019-02-23 20:48:06
【问题描述】:

当用户输入错误的用户名和密码组合时,尝试在我的 Angular 页面中显示 MatDialog,而不是显示我的登录页面本身。 见下图: Dialog

这是我对 LoginComponent 感到厌烦的地方:

     login() : void {
              const dialogConfig = new MatDialogConfig();
  this.utilisateurService.getLogin(this.username,this.password).subscribe((util: UtilisateurModel) => {
              this.utilisateur = util;
              if(util)
              {
                this.router.navigate(["home"]);
              }
              else
              {
                dialogConfig.disableClose = true;
                dialogConfig.autoFocus = true;
                dialogConfig.data = {
                  id: 1,
                  title: 'Désolé, nom d\'utilisateur ou mot de passe non reconnu.'
              };
          this.dialog.open(LoginComponent, dialogConfig);
              }
            });

          }

我通过在app.module.ts@NgModule 中添加entryComponents 尝试了this answer,但没有任何变化:

     providers: [],
  bootstrap: [AppComponent],
  entryComponents: [
    LoginComponent
  ]

提前谢谢你

【问题讨论】:

  • 那有什么问题呢?有什么错误吗?

标签: angular


【解决方案1】:

在这一行:

this.dialog.open(LoginComponent, dialogConfig);

您应该传递您的另一个组件,该组件表明凭据有问题,而不是 LoginComponent。因此,您需要专门定义新组件以显示该错误消息,将其传递给open(),并且不要忘记将其注册到entryComponents。 希望对您有所帮助。

【讨论】:

  • 那我也必须设计吗?
  • 是的,只是一个新组件,带有你想要显示的简单 html 模板,就是这样
  • 记得将新的NewComponent添加到模块的入口组件中。您可以从条目组件中删除LoginComponent。要将数据传递给新组件,您需要使用MatDialogConfigdata 对象添加所需的任何数据。您可以通过在其构造函数中使用注入令牌[MAT_DIALOG_DATA][1] 在新组件中使用该数据。 [1]:material.angular.io/components/dialog/api#MAT_DIALOG_DATA
猜你喜欢
  • 2018-04-24
  • 2019-11-03
  • 2023-03-23
  • 2017-05-18
  • 2018-05-27
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多