Angularjs 角坐标系中模态的形式验证

Angularjs 角坐标系中模态的形式验证,angularjs,forms,Angularjs,Forms,我在模态弹出窗口中有一个表单。我试图在用户尝试提交表单后对输入运行表单验证。到目前为止,我正在努力使事情顺利进行 在我看来,我有以下几点(很抱歉,如果有语法错误,我正在动态地从jade转换): 现在,我仍然可以提交表单,但一旦我打开表单,我会看到“此字段是必需的”错误消息。此外,输入预先填充了[object,object],而不是空文本输入框。清理模型的方法是使用属于父控制器的模型变量,并在回调中清理它。查看模板如何附加父控制器的varFormData 退房 所以关于验证,我建议您在其中拥有自己

我在模态弹出窗口中有一个表单。我试图在用户尝试提交表单后对输入运行表单验证。到目前为止,我正在努力使事情顺利进行

在我看来,我有以下几点(很抱歉,如果有语法错误,我正在动态地从jade转换):


现在,我仍然可以提交表单,但一旦我打开表单,我会看到“此字段是必需的”错误消息。此外,输入预先填充了[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;
        ...