Angularjs 角坐标系中模态的形式验证
我在模态弹出窗口中有一个表单。我试图在用户尝试提交表单后对输入运行表单验证。到目前为止,我正在努力使事情顺利进行 在我看来,我有以下几点(很抱歉,如果有语法错误,我正在动态地从jade转换):Angularjs 角坐标系中模态的形式验证,angularjs,forms,Angularjs,Forms,我在模态弹出窗口中有一个表单。我试图在用户尝试提交表单后对输入运行表单验证。到目前为止,我正在努力使事情顺利进行 在我看来,我有以下几点(很抱歉,如果有语法错误,我正在动态地从jade转换): 现在,我仍然可以提交表单,但一旦我打开表单,我会看到“此字段是必需的”错误消息。此外,输入预先填充了[object,object],而不是空文本输入框。清理模型的方法是使用属于父控制器的模型变量,并在回调中清理它。查看模板如何附加父控制器的varFormData 退房 所以关于验证,我建议您在其中拥有自己
现在,我仍然可以提交表单,但一旦我打开表单,我会看到“此字段是必需的”错误消息。此外,输入预先填充了[object,object],而不是空文本输入框。清理模型的方法是使用属于父控制器的模型变量,并在回调中清理它。查看模板如何附加父控制器的var
FormData
退房
所以关于验证,我建议您在其中拥有自己的控制器,不管它有多少代码。它帮助您保持模块化的概念,更好地控制您的范围。这种方法在验证时也会有很大的帮助。您能提供一个plunker吗?您的模态是否有单独的控制器?这个答案提供了非常合理的建议,如果您不这样做,可能会在清理范围变量时引起各种各样的问题(我犯了这个错误)。如果为表单+1创建一个单独的控制器,会更干净
<script type="text/ng-template", id="modalVideoNew">
<div class="ngdialog-message">
<form class="form-horizontal" ng-submit="submitForm()" novalidate name="newVideoForm">
...
<div class="form-group">
<label> Title </label>
<div class="col-sm-8">
<input type="text" name="title", required='', ng-model="newVideoForm.title">
<span class="text-danger" ng-show="validateInput('newVideoForm.title', 'required')"> This field is required</span>
</div>
</div>
</div>
</script>
$scope.newVideo = function() {
ngDialog.openConfirm({
template: 'modalVideoNew',
className: 'ngdialog-theme-default',
scope: $scope
}).then(function() {
$scope.validateInput = function(name, type) {
var input = $scope.newVideoForm[name];
return (input.$dirty || $scope.submitted) && input.$error[type];
};
var newVideo = $scope.newVideoForm;
...