AngularJS NgMessages不隐藏消息

Reb*_*cca 2 javascript angularjs

我是AngularJS的新手,所以这可能是一个非常愚蠢的问题。

通过使用ngMessages上Angular文档,我希望实现在满足某些要求时显示的消息框。

但是,即使使用复制粘贴的示例,即使不满足其要求,消息框也不会被隐藏。但是,$error变量确实显示正确的值。

angular.module('ngMessagesExample', ['ngMessages']);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js"></script>
<form name="myForm">
    <label>
        Enter your name:
        <input type="text" name="myName" ng-model="name"  ng-minlength="5" ng-maxlength="20" required />
    </label>
    <pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>

    <ng-messages for="myForm.myName.$error" style="color:maroon;" role="alert">
        <ng-message when="required">You did not enter a field</ng-message>
        <ng-message when="minlength">Your field is too short</ng-message>
        <ng-message when="maxlength">Your field is too long</ng-message>
    </ng-messages>
</form>
Run Code Online (Sandbox Code Playgroud)

看起来是这样的: 在此处输入图片说明

小智 5

这是您的问题的替代解决方案。

<p ng-if="myForm.myName.$error.minlength">Your field is too short.</p>   
<p ng-if="myForm.myName.$error.maxlength">Your field is too long.</p>   
<p ng-if="myForm.myName.$error.required">You did not enter a field.</p>
Run Code Online (Sandbox Code Playgroud)