测试FormArray
问题描述:
我有一个PhoneNumbersFormComponent
其模板的样子:测试FormArray
<div [formGroup]="form">
<div formArrayName="numbers">
<input formControlName="countryPrefix">
<input formControlName="number">
</div>
</div>
我想通过由角CLI的ng g component xxx
第一个错误所创建的默认测试中,我得到的是:
找不到名称为'countryPrefix'的控件
我与解决:
beforeEach(() => {
fixture = TestBed.createComponent(PhoneNumbersFormComponent);
component = fixture.componentInstance;
component.phoneNumbers = [];
component.form = new FormGroup({
countryPrefix: new FormControl(),
number: new FormControl()
});
fixture.detectChanges();
});
现在仅存的错误是:
无法找到名为“数字”
控制和我不知道如何测试formArrayName="numbers"
答
尝试这样:
let array: FormGroup[] = [];
array.push(new FormGroup({
countryPrefix: new FormControl(),
number: new FormControl()
}));
let formArray = new FormArray(array);
component.form = new FormGroup({
numbers: formArray // or array not totally sure
})
很好,这个工程。 – gyc
非常欢迎 – Swoox