Angular 尽管列表项数组包含更多值,但一次只能显示一个列表项

Angular 尽管列表项数组包含更多值,但一次只能显示一个列表项,angular,typescript,nativescript,angular2-formbuilder,nativescript-angular,Angular,Typescript,Nativescript,Angular2 Formbuilder,Nativescript Angular,我有一个问题,一次只显示一个列表项,尽管迭代列表中有多个项。我不确定这是因为布局问题还是其他原因 当我转储myForm.get('questions').controls时,我越是单击addQuestion按钮,就可以看到其中有多个控件 有什么不对劲吗 这是我的表格: public myForm: FormGroup = this.fb.group({ questions: this.fb.array([]), }); 将传递到列表视图的: <StackLayout orientat

我有一个问题,一次只显示一个列表项,尽管迭代列表中有多个项。我不确定这是因为布局问题还是其他原因

当我转储
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>
组件模板:

<StackLayout class="question-item" [formGroup]="question">
    <TextField class="label input" formControlName="question" hint="Question"></TextField>
    <TextField class="input" formControlName="answer" hint="Answer"></TextField>
  </StackLayout>

单击按钮几下后,以下是转储的屏幕截图:

但是,正如您在这里看到的,只有一个项目显示出来(我在这里隐藏了粘贴模板中的一些按钮,以便更具可读性):


编辑:我刚刚尝试使用一个普通数组,其中包含一些对象。即使这样,也只有第一个出现

在编辑之前,我想说这可能与
OnPush
策略有关,因为
FormArray.push()
会变异控件,并且不会创建新引用。现在我想知道您的问题是否不是您的
ListView
组件。这个
是什么。问题
?它指的是什么?你是怎么做到的?@AJT_82这已经解决了,我在顶层组件上使用了一个滚动视图,这导致了它的崩溃。。我花了很长时间才找到它。@Chrillewoodz你应该解释解决方案,以及你是如何找到它的。。。我有一个类似的问题…在编辑之前,我想说这可能与
OnPush
策略有关,因为
FormArray.push()
会变异控件,并且不会创建新引用。现在我想知道您的问题是否不是您的
ListView
组件。这个
是什么。问题
?它指的是什么?你是怎么做到的?@AJT_82这已经解决了,我在顶层组件上使用了一个滚动视图,这导致了它的崩溃。。我花了很长时间才找到它。@Chrillewoodz你应该解释解决方案,以及你是如何找到它的。。。我有一个类似的问题。。。
<StackLayout class="question-item" [formGroup]="question">
    <TextField class="label input" formControlName="question" hint="Question"></TextField>
    <TextField class="input" formControlName="answer" hint="Answer"></TextField>
  </StackLayout>