当我对输入标记应用了两个验证时,我遇到了md-input-container的问题。我正在使用ng-model-options =“{updateOn:'blur'}”,但即使没有它也会出现问题。例如:
<md-input-container>
<label>Description:</label>
<input name="description" ng-model="list.description" type="text" ng-minlength="3" required />
<div ng-messages="listForm.description.$error">
<div ng-message="minlength">List description is too short</div>
<div ng-message="required">List description is required</div>
</div>
</md-input-container>
如果我输入“Te”然后按TAB,则会显示ng-minlength验证消息。但是如果那时我将输入留空,则不显示所需的消息(但输入是装饰的,因为它应该是)。
这里可以再现相同的行为(https://material.angularjs.org/latest/demo/input)。在Erros - &gt;说明输入,如果我输入超过30个字符然后清空输入,则不显示该消息。但是,如果我输入正确的值然后清空输入,则会显示消息。
答案 0 :(得分:0)
在我看来minlength
和required
有点相同。所以你必须要么其中一个。请参阅示例链接。
http://codepen.io/next1/pen/PNjdBz
即使您未在ng-minlength
中指定input
,它也会在ng-message
中显示错误,因为它是相同的。所以我认为您应该使用ng-message-exp
来检查这两种情况。在您查找maxlength
和required
时,您提到的材料设计文档中的链接已关联到minlength
和required
。
答案 1 :(得分:0)
这是Angular Material和ngMessages的一个已知问题。
如果您希望收到有关任何进展的通知,请订阅以下问题。我这样做......
https://github.com/angular/material/issues/6767
如果您必须立即解决这个问题,那么您可以使用那里描述的解决方法,但请记住,它不是美学上的完美。