如何在组件中引用“myform”?可能吗? 必须使用formbuilder(我试图避免使用它)?
<form #myForm="ngForm">
<label class="col-sm-12" [class.ng-invalid]="!(value.valid || Value.pristine)">Value</label>
<input type="text" required ngControl="value" #value="ngForm" class="form-control text-center" [(ngModel)]="value" />
</form>
答案 0 :(得分:5)
实际上还有另一种方法可以做到这一点。您可以使用ViewChild注释,这里您的示例适用:
<form #myForm="ngForm">
<label class="col-sm-12" [class.ng-invalid]="!(value.valid || Value.pristine)">Value</label>
<input type="text" required ngControl="value" #value="ngForm" class="form-control text-center" [(ngModel)]="value" />
class MyForm {
@ViewChild('myForm') form;
ngAfterViewInit() {
console.log(this.form)
this.form.control.valueChanges
.subscribe(values => console.log(values));
}
}
答案 1 :(得分:0)
为此,您需要利用FormBuilder
类和ngFormModel
指令。 ngForm
和ngControl
在线提供内联表单。
以下是一个示例:
<form [ngFormModel]="myForm">
<label class="col-sm-12"
[class.ng-invalid]="!(myForm.controls.value.valid || myForm.controls.value.pristine)">Value</label>
<input type="text" [ngControlControl]="myForm.controls.value"
class="form-control text-center" [(ngModel)]="value" />
</form>
并在组件类中:
@Component({
(...)
})
export class SomeComponent {
constructor() {
this.myForm = builder.group({
value: ["", Validators.required],
})
}
}
有关详细信息,请参阅此文章: