Bom dia Vínicius, primeiramente obrigado por me ajudar, é o seguinte:
Esse código abaixo é o meu componente, eu tenho um Grid com duas colunas uma chamada de Parametro e a outra de Valor, na coluna valor eu tenho um input para cada registro, o que preciso fazer é editar os valores que estão nesses inputs e salvar, porém não sei como proceder, voce pode me ajudar?
import { Component, OnInit, OnDestroy, Inject, ElementRef, ViewChildren, AfterViewInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators, FormControlName, FormControl, FormArray } from '@angular/forms';
import { BasicValidators } from 'app/shared/basic-validator';
import { GenericValidator } from 'app/shared/generic-validator';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from 'app/repositories/httpClient';
import { BaseValidatorComponent } from 'app/controllers/common/base-validator.component';
import { DocumentosValidator } from 'app/shared/validators/documentos.validator';
import { GenericServiceFactory } from 'app/repositories/common/generic-service-factory.service';
import { GenericService } from 'app/repositories/common/generic.service';
import { IError } from 'app/model/error.model';
import { ToastsManager } from 'ng2-toastr';
import { GenericDataService } from 'app/repositories/generic-data.service';
import { IParametro } from 'app/model/parametro.model';
@Component({
templateUrl: '../../../views/common/inline-edit.component.html'
})
export class ParametroEditComponent extends BaseValidatorComponent implements OnInit {
form: FormGroup;
formListArray:FormArray;
id: number
title: string;
parametro: IParametro
salvando: boolean
service: GenericService<IParametro>
constructor(private route: ActivatedRoute,
private fb: FormBuilder,
private serviceFactory: GenericServiceFactory,
private dataService: GenericDataService,
private toastr: ToastsManager,
private router: Router,
private http: HttpClient) {
super();
this.service = serviceFactory.createHttpServiceFor<IParametro>('parametro');
this.form = fb.group({
paramList:this.fb.array([
this.fb.group({
parametroValor:this.fb.control(null),
}),
]),
});
this.formListArray = this.form.get('paramList') as FormArray;
}
save() {
const parametro = <IParametro>this.form.value;
this.salvando = true;
if (!this.id || this.id === 0) {
this.salvarNovo(parametro);
} else {
this.atualizar();
}
}
salvarNovo(parametro: IParametro) {
this.service.post(parametro)
.catch((err: IError) => {
this.salvando = false;
this.toastr.error(err.message, 'Criação de Parametro');
return Observable.throw(err);
})
.subscribe((result) => {
this.toastr.success('Parametro criado com sucesso', 'Criação de parametro');
this.router.navigateByUrl('/configuracoes/parametro');
});
}
atualizar() {
this.service.putWithoutId(null)
.catch((err: IError) => {
this.salvando = false;
this.toastr.error(err.message, 'Atualização de parmetro');
return Observable.throw(err);
})
.subscribe((result) => {
this.toastr.success('Parâmetro atualizado com sucesso', 'Atualização de parâmetro');
this.router.navigateByUrl('/configuracoes/parametro');
});
}
getValidationMessages(): { [key: string]: { [key: string]: string; }; } {
return {
parametroValor: {
required: 'Campo Valor é obrigatório'
},
}
}
async ngOnInit() {
this.route.params.subscribe(params => {
this.id = +params['id'];
this.title = 'Incluir Parâmetro';
if (this.id && this.id !== 0) {
this.title = 'Alterar Parâmetro'
this.service.getById(this.id)
.subscribe(data => {
this.form.patchValue({
parametroValor: data.parametroValor
});
});
}
});
}
}