A última explicação é sobre a propriedade validate
de editProperties
. Essa propriedade é chamada toda vez que ocorre mudança de valor em algum dos campos do formulário.
Como já mostrado inicialmente, chamo o método changeValueForm
na propriedade validate de editProperties no meu OnInit.
A propriedade validate
passa um parâmetro para o método executado. O primeiro é um objeto com os valores iniciais de cada campo de acordo com o payload da API. O segundo é o nome da property
da column que teve o valor editado. Segue o exemplo:
changeValueForm(formValue, columnProperty) {
if (columnProperty === 'genre') {
const genreDescription = this.columns1.find(column => column.property === 'genreDescription');
genreDescription.editProperties.disabled = false;
genreDescription.editProperties.options = this.appService.getCity(formValue.genre);
this.form.controls['genreDescription'].setValue('');
}
return this.form;
}
Nesse caso, estou verificando se a coluna que houve mudança foi a genre
e buscando a minha coluna com a property genreDescription
. Nisso eu habilito essa coluna e atribuo uma nova options
de acordo com o novo valor selecionado na coluna genre
além de limpar o valor desse campo no formulário.