我正在学习角度,我不知道如何重置模板驱动表单的验证。
<form (ngSubmit)="onSubmit()" #heroForm="ngForm">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name"
required
[(ngModel)]="model.name" name="name"
#name="ngModel">
<div [hidden]="name.valid || name.pristine"
class="alert alert-danger">
Name is required
</div>
</div>
<div class="form-group">
<label for="alterEgo">Alter Ego</label>
<input type="text" class="form-control" id="alterEgo"
[(ngModel)]="model.alterEgo" name="alterEgo">
</div>
<div class="form-group">
<label for="power">Hero Power</label>
<select class="form-control" id="power"
required
[(ngModel)]="model.power" name="power"
#power="ngModel">
<option *ngFor="let pow of powers" [value]="pow">{{pow}}</option>
</select>
<div [hidden]="power.valid || power.pristine" class="alert alert-danger">
Power is required
</div>
</div>
<button type="submit" class="btn btn-success" [disabled]="!heroForm.form.valid">Submit</button>
<button type="button" class="btn btn-default" (click)="newHero(); heroForm.reset()">New Hero</button>
<i>with</i> reset
<button type="button" class="btn btn-default" (click)="newHero()">New Hero</button>
<i>without</i> reset
<!-- NOT SHOWN IN DOCS -->
<div>
<hr>
Name via form.controls = {{showFormControls(heroForm)}}
</div>
<!-- - -->
</form>
提前致谢
是否可以在模板驱动的表单中使用ngFor创建输入字段,并使用类似#name=“ngmodel”的东西来在另一个标记中使用name.valid? 现在,我们有一个动态的产品列表,在一个表中有一个数量字段和一个添加到购物车按钮。我想把整个事情变成一个表单,末尾有一个add all按钮,如下所示: 但是如何为NGModel每行生成一个新的变量名呢?
首先,考虑一个典型的表单: index.html signup-form.component.ts
双向绑定
假设你要提交一个类似下面的数据: 更糟的是,在可能在表单输入中遇到命名冲突的情况下,您可能会发现自己为了语义而使用长而笨拙的名称。 当在Angular 2中构建模板驱动的表单时,我们可以依靠ngModelGroup指令来实现一个更干净的实现,这样Angular就会将表单字段转换为嵌套数据。
在Angular 2+中使用模板驱动的表单,我希望使用表单中的子组件来更容易地对表单元素进行单元测试。也就是说,我希望能够禁用submit按钮With template reference variables(ie)。我知道有些东西应该从父窗体传递到子组件,但我还不知道这是什么,也不知道应该使用什么语法。 我已经看过以下链接,但它们在真正的输入控制定制与访问模板引用变量方面有更多的工作要做: 如何