测试 FormArray [英] Testing FormArray
本文介绍了测试 FormArray的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 PhoneNumbersFormComponent
,其模板如下所示:
<div formArrayName="数字"><input formControlName="countryPrefix"><input formControlName="number">
我想通过angular-cli的ng g component xxx
我得到的第一个错误是:
<块引用>找不到名为countryPrefix"的控件
我解决的问题:
beforeEach(() => {夹具 = TestBed.createComponent(PhoneNumbersFormComponent);组件 = 夹具.componentInstance;component.phoneNumbers = [];component.form = new FormGroup({countryPrefix: 新的 FormControl(),编号:new FormControl()});夹具.detectChanges();});
现在最后剩下的错误是:
<块引用>找不到名称为数字"的控件
而且我不知道如何测试 formArrayName="numbers"
解决方案
试试这个:
let 数组:FormGroup[] = [];array.push(new FormGroup({countryPrefix: 新的 FormControl(),编号:new FormControl()}));让 formArray = new FormArray(array);component.form = new FormGroup({numbers: formArray//或数组不完全确定})
I have a PhoneNumbersFormComponent
whose template looks like :
<div [formGroup]="form">
<div formArrayName="numbers">
<input formControlName="countryPrefix">
<input formControlName="number">
</div>
</div>
I want to pass the default test created by angular-cli's ng g component xxx
The first error I got was:
Cannot find control with name 'countryPrefix'
Which I solved with:
beforeEach(() => {
fixture = TestBed.createComponent(PhoneNumbersFormComponent);
component = fixture.componentInstance;
component.phoneNumbers = [];
component.form = new FormGroup({
countryPrefix: new FormControl(),
number: new FormControl()
});
fixture.detectChanges();
});
Now the last remaining error is:
Cannot find control with name 'numbers'
And I have no idea how to test formArrayName="numbers"
解决方案
Try something like this:
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
})
这篇关于测试 FormArray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文