TypeError:control.setParent不是函数

时间:2018-04-10 07:41:16

标签: angular

我从我的组件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;
    }

}

0 个答案:

没有答案