我们需要给表单元素添加
ng-model
属性,这样 pristine 和 dirty 都会更新,之后就可以正常工作了。
Pristine 定义如下
ng-pristine 类表明表单尚未被用户修改。如果用户未修改表单,则返回 true。返回类型:如果用户未修改表单/输入字段,则返回 Boolean True,否则返回 False。
下面的工作示例!
var module = angular.module("myModule", []);
module.controller("myController", function($scope) {
$scope.su = su;
$scope.results = "default";
function su()
{
$scope.results = $scope.myForm.$pristine;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.10/angular.min.js"></script>
<div ng-app="myModule">
<div ng-controller="myController">
<form name="myForm" ng-submit="su()">
<input name="input1" type="text" ng-model="input1">
<div class="info" ng-show="myForm.input1.$pristine">
Now Pristine
</div>
<div class="error" ng-show="myForm.input1.$dirty">
Now Dirty
</div>
<button id="button1" type="submit" >>>>>></button>
</form>
myForm.$pristine : {{myForm.$pristine}}
</div>
</div>