【发布时间】:2019-08-04 05:10:32
【问题描述】:
我有一个用户可以注册帐户的表单,当用户输入用户名时,如果已经存在帐户,则会显示错误消息。 但是,当我按事件检查时,如果用户删除文本并重新输入,检查标志只会呈现一次并且不会再次绑定。
我的组件 HTML 上的表单:
<label for="Username">Username:</label>
<input type="text" (keyup)="ConfirmDataBeforeSubmission(regisUsername.value)" pattern="^[a-zA-Z0-9]+$" required name="Username" id="Username" class="modal_input" #regisUsername='ngModel' ngModel />
<!-- Errors -->
<div class="has-text-danger" *ngIf="(regisUsername.touched || regisUsername.dirty) && (regisUsername.errors)">
<div *ngIf="regisUsername.errors?.required">
Username can't be blank
</div>
<div *ngIf="regisUsername.errors?.pattern">
Username can't have special characters/space
</div>
</div>
<div *ngIf="duplicateAccount">
Username already exists
</div>
我处理错误的组件 ts 文件
duplicateAccount = false;
UserListFromAPI: User[] = [];
ConfirmDataBeforeSubmission(username: string) {
this.myAPIService.GetListUser().subscribe((list) => {
this.UserListFromAPI = list;
});
this.UserListFromAPI.forEach(element => {
if (element.Username === username) {
this.duplicateAccount = !this.duplicateAccount;
}
});
}
有什么解决办法吗?我是 Angular 的新手,所以任何帮助/建议都将不胜感激。
【问题讨论】:
标签: angular typescript data-binding