您也可以使用“formbuilder”以与我的 prev 类似的方式进行操作。发帖如下:
import {Component, OnInit} from '@angular/core';
import { FORM_DIRECTIVES, FormBuilder, ControlGroup } from '@angular/common';
@Component({
selector: 'registration-form',
directives: [FORM_DIRECTIVES],
template: `
<form
[ngFormModel]="myForm"
(ngSubmit)="onSubmit(myForm.value)"
class="ui form">
<div class="form-group">
<label for="registrationemailInput">EMail Address</label>
<input type="email"
required
id="registrationemailInput"
placeholder="email address"
[ngFormControl]="myForm.controls['registrationemail']"
class="form-control"
pattern="^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$"
/>
<div *ngIf="myForm.controls['registrationemail'].touched && myForm.controls['registrationemail'].errors" class="alert alert-danger">
<div *ngIf="myForm.controls['registrationemail'].errors.required" >An Email is required</div>
<div *ngIf="myForm.controls['registrationemail'].errors.pattern">Email is invalid</div>
</div>
</div>
<div class="form-group">
<label for="termsandconditions">Accept Terms & Conditions</label>
<input id="termsandconditions"
type="checkbox"
checked
[ngFormControl]="myForm.controls['accepttermsconditions']"
id="accepttermsconditions"
/>
</div>
<button
[disabled]="!myForm.valid || !myForm.controls['accepttermsconditions'].value"
class="btn btn-primary"
type="submit">Submit</button>
</form>`
})
export class FormbuilderComponent implements OnInit {
myForm: ControlGroup;
constructor(fb: FormBuilder) {
this.myForm = fb.group({
'registrationemail': ['test'],
'accepttermsconditions': [true]
})
}
ngOnInit() {
}
onSubmit(form: any): void {
console.log('you submitted value:', form);
}
}