2014-10-19 84 views
0

我是Angular的新手,无法调试使用表单验证的问题。即,如果表单无效,我想禁用sumbit按钮。我的问题是,即使我插入了明显有效的输入,它仍然无效。这又竟然是空的形式,甚至无效:角度验证问题

这是我的模板(原代码被注释掉):

<div> 
    <div class="row"> 
     <div class="col-xs-6"> 
      <a href ng-click="companiesCtrl.newEdit()" class="btn btn-primary">Uus asutus</a> 
      <table class="table"> 
       <tbody> 
       <tr ng-repeat="company in companiesCtrl.list"> 
        <td><a href ng-click="companiesCtrl.load(company)">{{company.name}}</a></td> 
       </tr> 
       </tbody> 
      </table> 
     </div> 
     <div class="col-xs-6"> 
      <form id="editForm"> 
      <!--<form ng-show="companiesCtrl.showEdit()" ng-submit="companiesCtrl.save()" name="editForm">--> 
       <!--<h4>Asutuse detailid</h4>--> 
       <!--<a ng-show="companiesCtrl.edit.id != 0" class="btn btn-primary" ng-href="../{{companiesCtrl.edit.id}}/product/list">Asutuse vaatele</a>--> 
       <!--<fieldset class="form-group">--> 
        <!--<input ng-model="companiesCtrl.edit.id"/>--> 
       <!--</fieldset>--> 
       <!--<fieldset class="form-group">--> 
        <!--<input placeholder="Asutuse nimi" title="Asutuse nimi" ng-model="companiesCtrl.edit.name" ng-required="true"/>--> 
       <!--</fieldset>--> 
       <!--<fieldset class="form-group">--> 
        <!--<input type="submit" class="btn btn-success" ng-disabled="editForm.$invalid" value="Salvesta" />--> 
       <!--</fieldset>--> 
      </form> 
      <span>{{editForm.$error}}</span> 
      <span>{{editForm.$invalid}}</span> 
      <span>{{editForm.$valid}}</span> 
     </div> 
    </div> 

,这是从“跨越” -s结果:

{"required":[{}]} true false 

我的问题是,因为我是Angular的新手,如何调试它,或者是什么影响窗体“有效”状态的其他因素。

回答

0

我设法自己发现问题。我有多个被ng-show隐藏的指令。他们都有一个名为“editForm”的表单,这会导致Angular验证所有表单。

只是如果有人曾经需要这个调试:我添加以下到我的模板:

<span ng-repeat="error in compForm.$error"><span ng-repeat="error2 in error"> 
       {{companiesCtrl.logThis(error2)}}</span></span> 

和下面给我的控制器:

this.logThis = function(toLog) { 
       console.log(toLog); 
      } 

从日志中我看到那是验证过很多次,并且质疑我的问题。