只有在满足某些条件时,我才需要在表单字段上应用验证.说我有这样的表格:
<div ng-controller="MyController">
<form name="myForm">
<div>
<div class="" ng-class="{error: myForm.gender.$invalid}">
Gender:
</div>
Male <input type="radio" name="gender" value="M" ng-model="survey.gender" required/>
Female <input type="radio" name="gender" value="F" ng-model="survey.gender" required/>
</div>
<div ng-show="survey.gender == 'F'">
<div class="">
Are you pregnant?
</div>
Yes <input type="radio" name="pregnant" value="Y" ng-model="survey.pregnant"/>
No <input type="radio" name="pregnant" value="N" ng-model="survey.pregnant"/>
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
我想只在用户选择女性时才提出怀疑问题.Angular会为此提供任何类型的验证吗?
我想对客人和客户注册表使用相同的模板,但验证可能会有所不同,如下所示
让我们假设这是一个客人登记表 - 名字是必需的
<form #f="ngForm" novalidate (ngSubmit)="save()">
<label>First Name:</label>
<input type="text" name="firstName" [(ngModel)]="values.FirstName" required #firstName="ngModel">
<div *ngIf="firstName.hasError('required') && (!firstName.pristine && !f.submitted)" class="text-danger">You must include a first name.</div>
</form>
Run Code Online (Sandbox Code Playgroud)
这是给客户的——名字是可选的
<form #f="ngForm" novalidate (ngSubmit)="save()">
<label>First Name:</label>
<input type="text" name="firstName" [(ngModel)]="values.FirstName" #firstName="ngModel">
</form>
Run Code Online (Sandbox Code Playgroud)
我想对两种表单使用相同/唯一的模板,但验证各不相同!我怎么能做到呢。蒂亚!
注意:通过使用响应式表单我可以实现它,但我知道我想在模板驱动的表单中实现。