HTML provides バージョン4.01以降の標準のmaxlength属性。 Angularは ng-maxlength ディレクティブを提供します。
違いは、標準のアプローチでは最大値を超えて入力できないのに対し、Angularのアプローチでは検証エラーが生成されるだけです。
なぜ彼らはそのような指令を含めることに決めたのですか?動作に一貫性がないため、maxlengthの動的データバインディングが原因ではありません。 HTML 4.01でも利用できるので、互換性のためではありません。私の唯一の推測は、代替の検証パラダイムを提供するためにあるということですが、それは過剰設計のように聞こえます。
最大長の検証を提供するだけでなく、クラスng-invalid-maxlength
も追加します。したがって、制限を超えるものを置くと、ng-invalid-maxlength
クラスがそこに配置され、そのクラスに独自のcssを作成できます。
したがって、検証が失敗した場合にキーを押した後、cssが同時に呼び出され、UIに反映されます。
以前の回答はangularの以前のバージョンでは正しいかもしれませんが、今日とAngular v1.5.5では、maxlength
はng-maxlength
とまったく同じですが、テキストタイプの入力にHTML入力maxlengthプロパティを適用します。
例:
<input type="text" maxlength=5>
maxlength
は、入力に最大5文字を適用し、正しいangular検証クラスを入力に追加します。
一方、ngMaxlength
は検証のみを実施します。参照: https://docs.angularjs.org/api/ng/directive/ngMaxlength
アドバイス:maxlength
を使用してください。