在与许多与我的问题相关的现有问题交叉讨论后,我将其发布。因此,请勿将其评论为重复并发送重复的答案,我的情况有些不同。所有解决方案都与javascript或jquery有关。但是我想在Angular中使用。
我正在使用 mdBootstrap ,仅在index.html中提供CDN链接而不安装它。我有一个弹出窗口,带有用于登录和注册的选项卡。问题是输入凭据后,单击登录模式没有关闭(我不想放置data-dismiss =“ modal”),因为它不执行登录功能就关闭了模式。我希望完成两个功能,如果证书无效,则验证凭据,我希望模式处于打开状态并显示错误消息。如果有效,则仅关闭模式。
第二件事,即使我单击模态之外的任何位置并重新打开模态,我也想重置模态表单值。例如,如果我有两个输入字段(如用户名和密码),则仅输入用户名,将密码留空,然后单击外部并重新打开模式,即使用输入的用户名值打开我的模式。我想摆脱这些问题。
任何人都可以帮助我解决这些问题。预先感谢。
Log-Reg.component.html
<div class="modal fade" id="modalLoginRegisterForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
//tabs for login & Register
<div class="tab-content py-0">
<div class="tab-pane fade in show active" id="modalLoginTab" role="tabpanel">
<form #loginForm="ngForm">
<div class="md-form">
<input required [(ngModel)]="username" type="email" id="loginEmail" name="Username" class="form-control validate">
<label for="loginEmail">Enter your email address</label>
</div>
<div class="md-form">
<input required [(ngModel)]="password" type="password" id="loginPassword" name="Password" class="form-control validate">
<label for="loginPassword">Enter your password</label>
</div>
<div *ngIf="isLoginError" class="alert alert-danger">Incorrect Credentials</div>
<button type="button" [disabled]=!loginForm.valid class="btn btn-primary" (click)="onLogin()">Login</button>
</form>
</div>
//Form for Register
</div>
</div>
</div>
</div>
</div>
Log-Reg.component.ts
@ViewChild('loginForm') public userLoginForm : NgForm;
onLogin(){
//some function for login validation\
this.userLoginForm.reset();
}
答案 0 :(得分:0)
尝试一下。
this.userLoginForm.form.reset()
或
this.userLoginForm.resetForm()
答案 1 :(得分:0)
根据您的评论,我认为您在登录后无法关闭模式,
您没有在组件中导入模态指令
模式模板.html文件
<div mdbModal #loginModal="mdbModal" class="modal fade" id="modalLoginRegisterForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
//tabs for login & Register
<div class="tab-content py-0">
<div class="tab-pane fade in show active" id="modalLoginTab" role="tabpanel">
<form #loginForm="ngForm">
<div class="md-form">
<input required [(ngModel)]="username" type="email" id="loginEmail" name="Username" class="form-control validate">
<label for="loginEmail">Enter your email address</label>
</div>
<div class="md-form">
<input required [(ngModel)]="password" type="password" id="loginPassword" name="Password" class="form-control validate">
<label for="loginPassword">Enter your password</label>
</div>
<div *ngIf="isLoginError" class="alert alert-danger">Incorrect Credentials</div>
<button type="button" [disabled]=!loginForm.valid class="btn btn-primary" (click)="onLogin()">Login</button>
</form>
</div>
//Form for Register
</div>
</div>
</div>
</div>
</div>
在您的组件文件( appcomponent.ts )中尝试
import { ModalDirective } from 'ng-mdb-pro/free/modals/modal.directive';
@ViewChild('loginModal') _loginModal: ModalDirective;
onLogin(){
*add your login logic in your success add the below code*
this._loginModal.hide()
}
希望这可以解决您的问题