我遇到一个问题,即一次只显示一个列表项,尽管迭代列表中有多个项目。我不确定这是否归结为布局问题或其他问题。
当我转储myForm.get('questions').controls
时,我可以看到有多个控件,我点击addQuestion
按钮的次数越多。
可能出现什么问题?
这是我的表格:
public myForm: FormGroup = this.fb.group({
questions: this.fb.array([]),
});
传递给列表视图:
<StackLayout orientation="vertical">
<ListView [items]="myForm.get('questions').controls">
<ng-template let-question="item">
<StackLayout orientation="vertical">
<question [question]="question"></question>
</StackLayout>
</ng-template>
</ListView>
<StackLayout orientation="horizontal">
<Button class="btn btn-xs btn-primary" text="textfield" (tap)="addQuestion('textfield')"></Button>
</StackLayout>
</StackLayout>
当您单击添加问题按钮时,将运行此按钮,这会在列表中添加一个新项目:
getQuestion(type: string): FormGroup {
return this.fb.group({
type: type,
label: null,
question: '',
answer: null
});
}
addQuestion(type: string): void {
this.questions.push(this.getQuestion(type));
// Dumped the value rather than the controls to make it clearer what the array contains
console.dump(this.questions.value)
}
<question>
组件模板:
<StackLayout class="question-item" [formGroup]="question">
<TextField class="label input" formControlName="question" hint="Question"></TextField>
<TextField class="input" formControlName="answer" hint="Answer"></TextField>
</StackLayout>
点击按钮后,这是转储的屏幕截图:
但是你可以看到这里只显示了一个项目(我在这里隐藏了粘贴模板中的一些按钮,因此它更具可读性):
编辑:我刚试过一个包含一些对象的普通数组。即便如此,只有第一个出现。