为什么 ngMessages 警报只出现一次? 当我从 Bootstrap 选项中使用 (data-dismiss="alert"class="close") 时,警报被隐藏,但随后它再也不会出现。
<body ng-app="ngMessagesExample">
<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>
<div ng-messages="myForm.myName.$error">
<div role="alert" class="alert alert-danger alert-dismissible fade in">
<button aria-label="Close" data-dismiss="alert" class="close" type="button">
<span aria-hidden="true">when close never display again -> ×</span>
</button>
<div ng-message="required">You did not enter a field</div>
<div ng-message="minlength">Your field is too short</div>
<div ng-message="maxlength">Your field is too long</div>
</div>
</div>
</form>
</body>
codepen: http://codepen.io/mescal/pen/PZpWjd?editors=101
谢谢!
最佳答案
试试这个:
<body ng-app="ngMessagesExample">
<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>
<div ng-messages="myForm.myName.$error" ng-show="myForm.myName.$touched">
<div ng-message="required">You did not enter a field</div>
<div ng-message="minlength">Your field is too short</div>
<div ng-message="maxlength">Your field is too long</div>
</div>
</form>
</body>
这将在用户触摸该字段时显示/隐藏错误消息,但不一定对其进行任何更改。您不需要手动删除错误消息的按钮,因为如果用户输入符合您的条件,错误消息将自动隐藏。您可以将 $touched 替换为 $pristine 或 $dirty,以根据用户是否未输入任何内容或已在字段中输入内容来触发错误消息。
关于javascript - 为什么 ngMessages 警报只出现一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621126/