2014-10-19 136 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); 
      } 

從日誌中我看到那是驗證過很多次,並且質疑我的問題。