角度材料:未显示第二个验证消息

时间:2016-03-27 14:11:32

标签: angularjs validation angular-material

当我对输入标记应用了两个验证时,我遇到了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个字符然后清空输入,则不显示该消息。但是,如果我输入正确的值然后清空输入,则会显示消息。

2 个答案:

答案 0 :(得分:0)

在我看来minlengthrequired有点相同。所以你必须要么其中一个。请参阅示例链接。 http://codepen.io/next1/pen/PNjdBz

即使您未在ng-minlength中指定input,它也会在ng-message中显示错误,因为它是相同的。所以我认为您应该使用ng-message-exp来检查这两种情况。在您查找maxlengthrequired时,您提到的材料设计文档中的链接已关联到minlengthrequired

答案 1 :(得分:0)

这是Angular Material和ngMessages的一个已知问题。

如果您希望收到有关任何进展的通知,请订阅以下问题。我这样做......

https://github.com/angular/material/issues/6767

如果您必须立即解决这个问题,那么您可以使用那里描述的解决方法,但请记住,它不是美学上的完美。