全体的にAngularとJavaScriptの新機能です。Materializeライブラリ(データエラー属性)を使用してユーザー入力が間違っているときにメッセージを追加しようとしています。だから私のhtmlコンポーネントは次のようになります:Angular2フォーム検証エラーメッセージ
<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"が表示されます。
displayUsernameErrorMessage() {
let message = '';
let usernameError = this.username.errors;
if(usernameError.pattern){
message = "Invalid Username"
console.log(usernameError);
}
else {
return null;
}
}
私はコンソールに10倍のような機能のログ、私はこれで本当に悪い仕事をしていると思うと、それはだ:私はこのような関数を記述し、[attr.data-エラー]でそれを結合しようとしました貧弱な解決策。どのようにそれがより良い動作するように任意のアイデアは非常に感謝しています!
EDIT 1:追加情報は、エラーによって異なるメッセージを表示したいということです。 Validator.patternからエラーが発生した場合 - メッセージが「Invalid username」のようなものか、Validators.requiredのものか - 「usernameを挿入してください」というようなものが必要です。
におけるデータ・エラー属性を参照することができます私はそのような考えを持っていたが、Iよりダイナミックにしたい、私の最初の投稿はおそらくあなたを誤解している、私はエラーに応じて別のメッセージを持っていたいので、フィールドが無効でエラーラベルを変更するときに実行される関数のようなものが欲しい。たとえば、Validator.requiredからエラーが発生した場合、「あなたの名前を入力してください」と表示されますが、Validators.minLengthの場合は「少なくとも3文字を入力してください」などと表示されます。 – Shirohige
..;).. –