Angular6 - Получить Nested FormGroup, используя имя

У меня есть вложенные группы форм

address = new FormGroup({
'com.complex.Address':new FormGroup({
            city: cityControl,
            streetName: streetNameControl,
            houseNumberAddition: houseNumberAdditionControl,
            houseNumber: houseNumberControl,
            postcode: postcodeControl
          })
});

Я хочу найти группу вложенных форм, то есть "com.complex.Address".

Я уже пробовала

this.form.get('address').get('com.complex.Address');

Но это всегда возвращает нулевое значение.

Теперь, если я изменю вложенную группу форм (например, com.complex.Address) на любое другое имя, например "test", и выполню this.form.get('address').get('test'); это на самом деле вернуть значение, которое я хочу.

Но дело в том, что я не могу изменить вложенное имя, и оно будет содержать некоторые специальные символы.

Как я могу избежать персонажа и использовать группу форм, как я хочу.?

2 ответа

Решение

Глядя на угловой код.get() он использует "." в качестве разделителя, чтобы сделать массив путей.

Я не вижу никакого решения, чтобы пройти через это. В любом случае вы можете использовать:

(<FormGroup>this.form.get('address')).controls['com.complex.Address']; 

Попробуй вот так

 NewForm = this.fb.group({
        relationshipId: this.fb.group({
            code: [null, Validators.required]
        })});

this.NewForm.get('relationshipId').value.code  
this.NewForm.get('relationshipId').get('code').value`
Другие вопросы по тегам