Angular 无法获取嵌套的formControlName
我无法在单击按钮时添加新的文本字段 这是我的代码,我累了 home.tsAngular 无法获取嵌套的formControlName,angular,ionic-framework,ionic3,angular2-template,formarray,Angular,Ionic Framework,Ionic3,Angular2 Template,Formarray,我无法在单击按钮时添加新的文本字段 这是我的代码,我累了 home.ts constructor() { this.myForm = this._fb.group({ md: false, mdNames: this._fb.group({ uid: "", _rev: "", type: "i_org_docs_ref", name: "MARINE1", details: "Material declaratio
constructor() {
this.myForm = this._fb.group({
md: false,
mdNames: this._fb.group({
uid: "",
_rev: "",
type: "i_org_docs_ref",
name: "MARINE1",
details: "Material declaration",
details_array: this._fb.array([]),
cdt: ""
}),
});
}
addClicked() {
const control2 = <
FormArray( < FormGroup > this.myForm.controls['mdNames']).controls['details_array']
control2.push(this._fb.group({
mdTextBox: "",
}));
}
constructor(){
this.myForm=this.\u fb.group({
md:错,
mdNames:this.\u fb.group({
uid:“”,
_修订版:“,
键入:“i\u组织\u文档\u参考”,
姓名:“海军陆战队1号”,
详情:“材料声明”,
详细信息\u数组:此.\u fb.array([]),此,
cdt:“
}),
});
}
addClicked(){
常数控制2=<
FormArray(this.myForm.controls['mdNames'])。controls['details\u array']
控制2.推动(本组)({
mdTextBox:“”,
}));
}
home.html
<div formControlName="mdNames">
<div formArrayName="details_array">
<ion-list *ngFor="let obj of myForm.controls.details_array.controls; let i=index">
<div [formGroupName]="i">
<ion-item no-lines>
<button
ion-button
color="dark"
clear
icon-only
item-end
class="deleteBtn"
(click)="deleteOrgItemClicked(i)">
<ion-icon name="ios-trash"></ion-icon>
</button>
<ion-input
formControlName="mdTextBox"
type="text"
class="textFields"
placeholder="Type details">
</ion-input>
</ion-item>
</div>
</ion-list>
<ion-item>
<button
(click)="addClicked()"
class="addBtn">
Add documents
</button>
</ion-item>
</div>
</div>
添加文档
我想显示详细信息\u数组的值,但它显示了以下错误:名称为“mdNames”的表单控件没有值访问器
请帮我找出哪里出错了?
HTML:
请参考此示例-示例显示formgroup内的formarray。我的问题是更像formgroup的formgroup中的formarray的一步谢谢你的代码,但控制在模板i.3的第一行被破坏:
检查编辑的代码。我在表单数组中只取了一个formgroup
<ion-header>
<ion-navbar>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<form [formGroup]="myForm">
<div formGroupName="mdNames">
<div formArrayName="details_array">
<ion-list *ngFor="let obj of myForm.controls.mdNames.controls.details_array.controls; let i=index;">
<div [formGroupName]="i">
<ion-item no-lines>
<button ion-button color="dark" clear icon-only item-end class="deleteBtn" (click)="deleteOrgItemClicked(i)">
<ion-icon name="ios-trash"></ion-icon>
</button>
<ion-input formControlName="mdTextBox" type="text" class="textFields" placeholder="Type details"></ion-input>
</ion-item>
</div>
</ion-list>
</div>
</div>
<ion-item>
<button (click)="addClicked()" class="addBtn">
Add documents
</button>
</ion-item>
</form>
</ion-content>
details_array: FormArray;
myForm: FormGroup;
constructor(public navCtrl: NavController, private _fb: FormBuilder) {
this.myForm = this._fb.group({
md: false,
mdNames: this._fb.group(
{
uid: "",
_rev: "",
type: "i_org_docs_ref",
name: "MARINE1",
details: "Material declaration",
details_array: this._fb.array([this.createArray()]),
cdt: ""
}
),
});
}
createArray(): FormGroup {
return this._fb.group({
name: 'myName',
data: 'myData',
mdTextBox: 'mdTextBox'
})
}