小编Squ*_*ura的帖子

Angular 2 - 访问嵌套的 Formarrays (FormBuilder)

我正在使用 Angular 2 ReactiveForms 创建一个表单。该表格由模板、问题和答案组成。一个模板包含许多问题,问题包含许多答案。

ngOnInit() {
    // initialize template
    this.myForm = this.formBuilder.group({
        title: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(30)]],
        owner: [localStorage.getItem('user')],
        questions: this.formBuilder.array([
            this.initQuestion()
        ])
    }); 
}

initQuestion() {
    // initialize question
    return this.formBuilder.group({
        questionText: [{value: '', disabled: true}],
        answers: this.formBuilder.array([
            this.initAnswer()
        ])
    });
}

initAnswer() {
    // initialize answer
    return this.formBuilder.group({
        answerText: [{value: '', disabled: true}]
    });
}

addQuestion() {
    const control = <FormArray>this.myForm.controls['questions'];
    console.log(control);
    control.push(this.initQuestion());
}

addAnswer() {
    const control = <FormArray>this.myForm.get(['questions.0.answers']);
    control.push(this.initAnswer());
}
Run Code Online (Sandbox Code Playgroud)

我的目标是允许用户向模板添加问题,并回答每个问题。然而,我的问题是我无法访问名为“answers”的嵌套数组。到目前为止,我可以添加问题并且它工作正常,但是当我尝试添加问题的答案(addAnswer() 方法)时,我收到一条错误消息“无法读取 null 的属性‘push’” ,它引用了 …

forms nested angular

2
推荐指数
1
解决办法
2062
查看次数

标签 统计

angular ×1

forms ×1

nested ×1