我有一个FormGroup,嵌套在另一个FormGroup中,我想用get()来获取某个控件。
我尝试了以下解决方案,但该方法无效:
formGroup.get('formGroupKey').get('formControlKey');
但这会引发错误。第一个get()工作(并正确返回一个FormGroup),但第二个get抛出一个异常(path.split不是一个函数)
知道如何解决这个问题吗?
@Update
我现在用这种方式解决了它(虽然这不是一个很好的解决方案):
formGroup.get(tab.id)['controls'][segment.id];
答案 0 :(得分:4)
这应该有效:this.formGroup.get(varibaleKey).get(variableKey2)
以下是一些代码:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
name = 'Angular 5';
form: FormGroup;
key1: string = 'test1';
key2: string = 'test2';
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.form = this.formBuilder.group({
test1: this.formBuilder.group({
test2: ['testValue']
}),
another: ['testValue']
});
console.log(this.form.get(this.key1).get(this.key2));
}
}
答案 1 :(得分:1)
一种简洁的访问方式是
formGroup.get('formGroupKey.formControlKey');