【发布时间】:2017-05-12 23:34:13
【问题描述】:
我是 Angular 和 JavaScript 的新手,我正在尝试使用 Materialize 库(data-error 属性)在用户输入错误时添加消息。所以我的 html 组件看起来像这样:
<input
type="text"
id="username"
formControlName="username"
[class.valid]="username?.valid && username.dirty"
[class.invalid]="!username?.valid && username.dirty && !username.pending"
>
<label for="username"
data-error="ERROR_MESSAGE" // <-- this is what I need to work
>Username</label>
我想根据存在的错误更改数据错误属性。现在它会在出现任何错误时打印“ERROR_MESSAGE”。我尝试编写一个函数并将其与 [attr.data-error] 绑定,如下所示:
displayUsernameErrorMessage() {
let message = '';
let usernameError = this.username.errors;
if(usernameError.pattern){
message = "Invalid Username"
console.log(usernameError);
}
else {
return null;
}
}
我认为我在这方面做得非常糟糕,该功能在控制台中记录了 10 次,这是一个糟糕的解决方案。非常感谢有关如何使其更好地工作的任何想法!
编辑 1: 附加信息是我想根据错误显示不同的消息。因此,如果我从 Validator.pattern 收到错误消息 - 我希望消息类似于“无效的用户名”,或者如果它来自 Validators.required -“请插入用户名”,类似的内容。
【问题讨论】:
标签: forms validation angular messages materialize