尽管列表项数组包含更多值

时间:2017-04-22 09:37:30

标签: angular typescript nativescript angular2-formbuilder nativescript-angular

我遇到一个问题,即一次只显示一个列表项,尽管迭代列表中有多个项目。我不确定这是否归结为布局问题或其他问题。

当我转储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>

点击按钮后,这是转储的屏幕截图:

dump

但是你可以看到这里只显示了一个项目(我在这里隐藏了粘贴模板中的一些按钮,因此它更具可读性):

list

编辑:我刚试过一个包含一些对象的普通数组。即便如此,只有第一个出现。

0 个答案:

没有答案