Ste*_*eve 5 javascript twitter-bootstrap angularjs angularjs-ng-form ng-messages
<div class="form-group" ng-class="{'has-error': claimForm.consigneeID.$invalid && claimForm.consigneeID.$touched}">
<label class="label-bold">Consignee ID</label><br>
<input name="consigneeID" ng-model="coId" type="number" ng-maxlength="5" ng-minlength="5" class="form-control input-sm" required>
<div class="help-block" ng-messages="claimForm.consigneeID.$error" role="alert">
<div ng-message="required">Field is required.</div>
<div ng-message="minlength">Too few digits.</div>
<div ng-message="maxlength">Over 5 digits.</div>
</div>
Run Code Online (Sandbox Code Playgroud)
minlength和maxlength错误显示正确的消息并正确设置"has-error"ng-class.但是,如果我将"required"添加到我的字段和相应的消息中,则在重新加载时,"Field is required"始终显示(直到填写).
但是,除非跳过不同的错误,否则不会出现红色的"有错误"类.
我在这里想念的是什么?
我将总结一下我在使用ng-messages. 我相信这些会回答您的问题并有助于扩大ng-messages.
多条消息
角度消息默认只允许一条消息,只会显示第一条有错误的消息。您需要告诉 ng-messages 允许多条消息。
添加ng-messages-multiple到您的ng-messages指令
<div class="help-block" ng-messages-multiple
ng-messages="claimForm.consigneeID.$error" role="alert">
Run Code Online (Sandbox Code Playgroud)
允许无效值
其他值得添加的东西 Angular 也不总是允许输入无效值(它会在模糊时自动清除字段)。
如果您想允许无效数据并显示一条消息,您可能必须使用以下命令更新您的输入以告诉模型允许无效值:
ng-model-options="{ allowInvalid: true}"
<input name="consigneeID" ng-model="coId"
ng-model-options="{ allowInvalid: true}"
type="number"
ng-maxlength="5" ng-minlength="5"
class="form-control input-sm" required>
Run Code Online (Sandbox Code Playgroud)
隐藏表单加载时显示的错误消息
如果您希望在表单加载时隐藏消息,可以使用$touched表单字段的属性。
<div class="help-block" ng-messages-multiple
ng-show="claimForm.consigneeID.$touched"
ng-messages="claimForm.consigneeID.$error" role="alert">
Run Code Online (Sandbox Code Playgroud)