我从我的组件TypeError: control.setParent is not a function
收到错误。使用FormBuilder,我构建一个FormArray并在构造函数中启动表单组。所以我理解这个错误就是说还没有设置表单控件。不确定这对我有意义
这是迄今为止的组件......
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
import { tap, map } from 'rxjs/operators';
import { MediaListService } from '../../services/media-list.service';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-media-list-builder',
templateUrl: './media-list-builder.component.html'
})
export class MediaListBuilderComponent implements OnInit {
mediaListForm: FormGroup;
contactsDataSource$: Observable<any>;
mediaListDataSource$: Observable<any>;
mediaListId: number;
mediaList: any;
searchText = '';
searchKey = 'name';
tableView = true;
constructor(
private fb: FormBuilder,
private router: ActivatedRoute,
private medialistsrv: MediaListService
) {
this.mediaListForm = this.fb.group({
contacts: this.fb.array([])
});
this.router.params.subscribe(params => {
this.mediaListId = +params['id'];
});
}
get _contacts(): FormArray {
return this.mediaListForm.get('contacts') as FormArray;
}
ngOnInit() {
this.medialistsrv.getMediaListById(this.mediaListId).subscribe(
response => {
this.mediaList = response.contacts;
this.mediaList = this.mediaList.map(obj => obj.contactId);
this.mediaList.forEach(id => {
this._contacts.push(id);
});
}
);
this.contactsDataSource$ = this.medialistsrv.getAllContacts()
.map(response => response);
}
toggleView(arg) {
this.tableView = arg;
}
}