ngMessage 在 AngularJs 中不工作
ngMessage not working in AngularJs
我正在对必需项进行简单验证,但无法找到 ng-Message 在错误输入或单击提交时工作。有人可以帮我解决我错在哪里吗?
HTML:
<html>
<head>
<!-- Script Files -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<form name="form1" id="form1" novalidate>
<input type="text" name="age" ng-minlength="3" required/>
<div ng-messages="form1.age.$error" ng-show="(form1.age.$error.required || form1.age.$error.minlength) && (form1.age.$touched || form1.$submitted) " >
<div ng-message="required">This is required</div>
<div ng-message="minlength">Length is too less</div>
</div>
<a data-ng-click="submit(form1.$invalid)">Click</a>
</form>
<script>
//module declaration
var app = angular.module('myApp', ['ngMessages']);
//controller declaration
app.controller('myCtrl', function($scope) {
var submit = function(invalid){
if(invalid) return;
}
});
</script>
</body>
</html>
您输入的年龄没有ng-model
。验证 alá minlength 仅在存在 ng-model
时有效:
<input type="text" name="age" ng-model="age" ng-minlength="3" required/>
这是由于验证器的工作方式。当 $valid 为 false 时,您会注意到 ng-model 未设置。文档中也总是有提示:https://docs.angularjs.org/api/ng/directive/ngMinlength
此外ng-model
不需要与字段名称相同。
我正在对必需项进行简单验证,但无法找到 ng-Message 在错误输入或单击提交时工作。有人可以帮我解决我错在哪里吗?
HTML:
<html>
<head>
<!-- Script Files -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-messages.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<form name="form1" id="form1" novalidate>
<input type="text" name="age" ng-minlength="3" required/>
<div ng-messages="form1.age.$error" ng-show="(form1.age.$error.required || form1.age.$error.minlength) && (form1.age.$touched || form1.$submitted) " >
<div ng-message="required">This is required</div>
<div ng-message="minlength">Length is too less</div>
</div>
<a data-ng-click="submit(form1.$invalid)">Click</a>
</form>
<script>
//module declaration
var app = angular.module('myApp', ['ngMessages']);
//controller declaration
app.controller('myCtrl', function($scope) {
var submit = function(invalid){
if(invalid) return;
}
});
</script>
</body>
</html>
您输入的年龄没有ng-model
。验证 alá minlength 仅在存在 ng-model
时有效:
<input type="text" name="age" ng-model="age" ng-minlength="3" required/>
这是由于验证器的工作方式。当 $valid 为 false 时,您会注意到 ng-model 未设置。文档中也总是有提示:https://docs.angularjs.org/api/ng/directive/ngMinlength
此外ng-model
不需要与字段名称相同。