Я сделал это так, как мне кажется, это лучше.Создание внутренней группы для адреса и передача только этого компоненту адреса.
Вот мой стек
.TS
this.usuarioForm = this.formBuilder.group({
nome: this.formBuilder.control('', [Validators.required, Validators.minLength(3)]),
sobreNome: this.formBuilder.control('', [Validators.required]),
emailAdress: this.formBuilder.control('', [Validators.required, Validators.email]),
tipoPessoa: this.formBuilder.control('1', [Validators.required]),
endereco: this.formBuilder.group({ // Another form group inside the bigger group for better encapsulation.
cep: this.formBuilder.control('', [Validators.minLength(8), Validators.maxLength(9)]),
logradouro: this.formBuilder.control('', [Validators.required]),
bairro: this.formBuilder.control('', [Validators.required]),
cidade: this.formBuilder.control('', [Validators.required]),
complemento: ''
})
});
get endereco() {
return this.usuarioForm.get('endereco') as FormGroup; // this is just a refence to the inside group that contains information just relavant to address
}
Html:
<endereco [enderecoGroup]=endereco></endereco> //pass just the inside formGroup
Таким образом, нет необходимости прослушивать изменения в дочернем компоненте