【发布时间】:2016-09-20 21:53:24
【问题描述】:
我有这样的表单控制:
<div class="form-group" [class.has-error]="!orderForm.controls.persons.controls[0].controls.firstName.valid && orderForm.controls.persons.controls[0].controls.firstName.touched" [formGroupName]="0">
<label class="control-label">First Name</label>
<input type="text" class="form-control" formControlName="firstName" required />
</div>
由于[class.has-error]="!orderForm.controls.persons.controls[0].controls.firstName.valid && orderForm.controls.persons.controls[0].controls.firstName.touched 太长,是否有更简单、更短的方法来设置 has-error 类?
组件定义如下:
@Component({
moduleId: module.id,
selector: 'order-form',
templateUrl: 'order-form.component.html'
})
export class OrderFormComponent implements OnInit {
orderForm: FormGroup;
visitorsType: FormControl;
startDate: FormControl;
endDate: FormControl;
persons: FormArray;
duration: FormControl;
...
而表单初始化是这样的:
...
constructor(private _quotesService: QuotesService,
private _formBuilder: FormBuilder) { }
ngOnInit() {
this.persons = this._formBuilder.array([]);
this.orderForm = this._formBuilder.group({
persons: this.persons,
});
(<FormArray>this.orderForm.controls['persons']).push(this.initVisitor(this.startDate.value));
this.activate();
}
...
【问题讨论】: