我是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>
这是&#34; span&#34; -s:
的结果{"required":[{}]} true false
我的问题是,正如我对Angular的新手,如何调试它,或者影响表格的其他因素是什么?有效的&#34;状态。
答案 0 :(得分: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);
}
从日志中我看到它验证了太多次,并质疑我的问题。