Angular2 - 复选框

时间:2016-12-05 11:35:38

标签: forms angular checkbox typescript

我在angular2和typescript中构建了一个Form。 我尝试动态添加一个复选框列表,这对我不起作用,我的错误在哪里?

模板代码:

<div formArrayName="categories">
   <div class="form-group" *ngFor="let category of updateDetailsForm.controls.categories.controls; let i = index">
      <label>
        <input type="checkbox" formControlName="{‌{i}}">
          {‌{category.name}}
      </label>
   </div>
</div>

Typescript代码:

updateDetailsForm: FormGroup;
private categories : Category[] = []

constructor(private router: Router,
            private ss : SearchService,
            private formBuilder: FormBuilder)
{
   this.initForm() // before the categories loaded
   this.ss.getAllCategories().subscribe(
     data => {
       this.categories = data
       this.initForm() // refresh the form with categories
     }
   )
 }

initForm() {
  let allCategories: FormArray = new FormArray([]);
  for (let i = 0; i < this.categories.length; i++) {
    allCategories.push(
      new FormGroup({
        'name': new FormControl([this.categories[i].categoryName])
      })
    )
  }
  this.updateDetailsForm = this.formBuilder.group({
    'image' : [''],
    'categories': allCategories
  })
}

这是我的UI结果,我收到以下错误:

“内联模板:17:33引起:control.registerOnChange不是函数”

enter image description here

复选框的数量正确但文本丢失,我无法通过用户选择更新表单结果。

  1. 错误的含义是什么?

  2. 如何在复选框旁边插入正确的文字?

  3. 如何将用户选择更新为表单值?

0 个答案:

没有答案