找不到带名称的控件,第一次打开垫对话框
Cannot find control with name, first time opening mat dialog
我遇到了这个错误
main.d6f3e40c71733c3e7aa5.js:1 ERROR Error: Cannot find control with name: 'email'
仅限 chrome。该表单位于 angular material 对话框中。我使用注入的全局服务来初始化表单,所以在我单击打开模式的按钮之前,服务内的表单已经初始化,如果我 console.log 它我可以在那里看到控件。
当我打开垫子对话框时,它正在使用服务获取如下字段:
<div [formGroup]="loginService.loginForm" class="registration-type-form-container login-form">
<div
*ngIf="loginService.loginForm.invalid && (loginService.loginForm.dirty || loginService.loginForm.touched) && loginService.loginForm.errors && loginService.loginForm.errors.incorrect"
class="incorrect-email">
{{'login.validation.email-or-pass'|translate}}
</div>
<div class="form-container" fxLayout="column" fxLayoutAlign="center stretch" fxLayoutGap="5px">
<div class="e-mail form-input-container" fxFlex="">
<input [placeholder]="'login.email' | translate" autocomplete="off"
class="email-address form-input" formControlName="email"
id="email" required="required">
<div *ngIf="email.invalid && (email.dirty || email.touched)" class="requirements"
id="login-email">
<div *ngIf="email.errors.required">
{{'login.validation.email.required' | translate}}
</div>
<div *ngIf="email.errors.email">
{{'login.validation.email.email' | translate}}
</div>
</div>
</div>
</div>
输入
<input [placeholder]="'login.email' | translate" autocomplete="off"
class="email-address form-input" formControlName="email"
是抛出错误的那个。
如果我关闭对话框并重新打开它,它不会再次抛出错误。它只发生在第一次。正如我所说,它只发生在 chrome。我在 firefox 中测试过,它工作正常。
id="email" required="required">
似乎与 chrome 80 版有关。
在此处查看修复:https://github.com/angular/angular/issues/35190
或关注
我遇到了这个错误
main.d6f3e40c71733c3e7aa5.js:1 ERROR Error: Cannot find control with name: 'email'
仅限 chrome。该表单位于 angular material 对话框中。我使用注入的全局服务来初始化表单,所以在我单击打开模式的按钮之前,服务内的表单已经初始化,如果我 console.log 它我可以在那里看到控件。
当我打开垫子对话框时,它正在使用服务获取如下字段:
<div [formGroup]="loginService.loginForm" class="registration-type-form-container login-form">
<div
*ngIf="loginService.loginForm.invalid && (loginService.loginForm.dirty || loginService.loginForm.touched) && loginService.loginForm.errors && loginService.loginForm.errors.incorrect"
class="incorrect-email">
{{'login.validation.email-or-pass'|translate}}
</div>
<div class="form-container" fxLayout="column" fxLayoutAlign="center stretch" fxLayoutGap="5px">
<div class="e-mail form-input-container" fxFlex="">
<input [placeholder]="'login.email' | translate" autocomplete="off"
class="email-address form-input" formControlName="email"
id="email" required="required">
<div *ngIf="email.invalid && (email.dirty || email.touched)" class="requirements"
id="login-email">
<div *ngIf="email.errors.required">
{{'login.validation.email.required' | translate}}
</div>
<div *ngIf="email.errors.email">
{{'login.validation.email.email' | translate}}
</div>
</div>
</div>
</div>
输入
<input [placeholder]="'login.email' | translate" autocomplete="off"
class="email-address form-input" formControlName="email"
是抛出错误的那个。
如果我关闭对话框并重新打开它,它不会再次抛出错误。它只发生在第一次。正如我所说,它只发生在 chrome。我在 firefox 中测试过,它工作正常。 id="email" required="required">
似乎与 chrome 80 版有关。
在此处查看修复:https://github.com/angular/angular/issues/35190
或关注