[英]Hide ng-Message on Reset form
我是初学者使用AngalurJs和Material AngalurJs
我需要解决一个小问题
用户单击重置按钮时,我需要隐藏错误消息
我尝试了$setUntouched
和$setPristine
更改状态输入但不隐藏消息
我也尝试了ng-if
和ng-show
并且不起作用
我将其用于ng-messages的HTML代码:
<div ng-messages="formName.fieldName.$error">
<div ng-message="required">...</div>
</div>
和js代码进行重置:
<button ng-click="onclear">Clear</button>
// on controller js file code :
$scope.onclear = function(){
$scope.formName.$setUntouched();
$scope.formName.$setPristine();
}
所以这是我看到的可能的问题:
要调用函数,您需要使用带有onclear
括号:
<button ng-click="onclear()">Clear</button>
如果某个字段存在“必填”错误,则以下代码将始终显示该消息,无论该字段是否被触摸,是否脏污:
<div ng-messages="formName.fieldName.$error">
<div ng-message="required">...</div>
</div>
要隐藏基于$touched
和$dirty
的消息,请使用如下所示的内容:
<div ng-messages="formName.fieldName.$error"
ng-show="formName.fieldName.$dirty && formName.fieldName.$touched">
<div ng-message="required">...</div>
</div>
还要确保您包括了angular-messages.js
文件:
<head>
<!-- include angular and whatever -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-messages.js"></script>
<!-- ... -->
</head>
并且在创建应用程序模块时将'ngMessages'
添加到了角度依赖性列表中:
angular.module('app', ['ngMessages']);
如果您不做最后两件事,则ng-message
和ng-messages
属性将不起作用,所有div元素都会显示,无论字段错误如何(除非被我添加的ng-show
隐藏)。
看看我做的这个例子: https : //plnkr.co/edit/fuqsr6WRdBKoebPq1Igs?p=preview
在示例中,我将值绑定到控制器而不是$ scope,这就是为什么您会看到$ctrl
,希望这不会使您感到困惑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.