问题描述
我已经开始学习角度并开始我的宠物项目,我的角度形式定义为
this.symptomForm = this.fb.group({
symptoms: this.fb.array(this.createArray()),sNames: this.fb.array([this.createSnameFormGroup()])
});
和模板如下
<form [formGroup]="symptomForm" (ngSubmit)="onSubmit()">
<div>
<div formArrayName="symptoms">
<div *ngFor="let symptom of symptoms.controls; let i=index" class="symptomsName">
<span class="button3">{{symptom.value}}</span>
<span class="buttonDelete" (click)="removeSymptom(i)" >X</span>
</div>
</div>
<div formArrayName="sNames">
<div *ngFor="let name of symptomForm.get('sNames')['controls']; let i = index" >
<div formGroupName="{{i}}" class="symptomsInput">
<p>Enter New Symptom</p>
<div class="newSymptomContainer">
<input type="text" formControlName="sName" class="form-control symptomInputBox" >
<div style="padding-top: 5px;"><span class="buttonAdd" (click)="addSymptom()" >+</span></div>
</div>
</div>
</div>
</div>
</div>
<button type="submit" class="btn btn-primary">Save</button> <button type="button" class="btn btn-danger" (click)="cancel()">Cancel</button>
</form>
我可以使用*ngFor="let symptom of symptoms.controls; let i=index"
遍历/渲染症状
但是当我对*ngFor="let symptom of sNames.controls; let i=index"
之类的sName做同样的操作时,我得到一个错误提示
属性“ sNames”在类型上不存在 'SymptomComposerFormComponent'。
所以我在通过网络搜索后尝试了此方法,此方法*ngFor="let name of symptomForm.get('sNames')['controls'];
但是我很好奇为什么它不像症状一样起作用?为什么可以与.get
配合使用?
更新 其他信息
createArray() {
let formArray = [];
for(var i =0; i< this.symptomsData.length; i++) {
//console.log('asdf ; ',this.symptomsData[i])
formArray.push(new FormControl(this.symptomsData[i]['value']));
}
return formArray;
}
createSnameFormGroup(): FormGroup {
return new FormGroup({
'sName': new FormControl('')
})
}
我们非常感谢您为消除疑问提供的帮助。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)