加载表单以编辑角度条目时返回错误
我正在使用JHipster开发一个简单的应用程序,我将弹出对话框转换为一个页面,我很难加载数据进行编辑:
这是我的完整组件:
@Component({
selector: 'jhi-empresa-dialog',
templateUrl: './empresa-dialog.component.html'
})
export class EmpresaDialogComponent implements OnInit {
private subscription: Subscription;
private eventSubscriber: Subscription;
codigoCep: string;
empresa: Empresa;
isSaving: boolean;
cep: Cep;
estados: Estado[];
cidades: Cidade[];
constructor(
public activeModal: NgbActiveModal,
private alertService: JhiAlertService,
private empresaService: EmpresaService,
private cepService: CepService,
private estadoService: EstadoService,
private cidadeService: CidadeService,
private route: ActivatedRoute,
private router: Router,
private eventManager: JhiEventManager
) {
}
ngOnInit() {
this.isSaving = false;
this.estadoService.query()
.subscribe((res: ResponseWrapper) => { this.estados = res.json; }, (res: ResponseWrapper) => this.onError(res.json));
this.subscription = this.route.params.subscribe((params) => {
if (params['id']) {
this.load(params['id']);
}else {
this.empresa = new Empresa();
}
});
this.registerChangeInEmpresas();
}
load(id) {
this.empresaService.find(id).subscribe((empresa) => {
this.empresa = empresa;
this.buscaCidadePorEstado();
this.cep = empresa.cep;
this.codigoCep = this.cep.codigoCep;
});
}
registerChangeInEmpresas() {
this.eventSubscriber = this.eventManager.subscribe(
'empresaListModification',
(response) => this.load(this.empresa.id)
);
}
buscaCidadePorEstado() {
this.cidadeService.cidadesPorEstado(this.empresa.estado.id)
.subscribe((res: ResponseWrapper) => { this.cidades = res.json; }, (res: ResponseWrapper) => this.onError(res.json));
}
buscaCep() {
this.cepService.cepPorCodigo(this.codigoCep)
.subscribe((res: ResponseWrapper) => {
this.cep = res.json;
this.empresa.rua = this.cep.rua;
this.empresa.bairro = this.cep.bairro;
this.empresa.cep = this.cep;
this.empresa.estado = this.cep.estado;
this.buscaCidadePorEstado();
this.empresa.cidade = this.cep.cidade
}, (res: ResponseWrapper) => this.onError(res.json));
}
clear() {
this.activeModal.dismiss('cancel');
}
save() {
this.isSaving = true;
if (this.empresa.id !== undefined) {
this.subscribeToSaveResponse(
this.empresaService.update(this.empresa));
this.router.navigate(['/empresa'])
} else {
this.subscribeToSaveResponse(
this.empresaService.create(this.empresa));
this.router.navigate(['/empresa'])
}
}
private subscribeToSaveResponse(result: Observable<Empresa>) {
result.subscribe((res: Empresa) =>
this.onSaveSuccess(res), (res: Response) => this.onSaveError(res));
}
private onSaveSuccess(result: Empresa) {
this.eventManager.broadcast({ name: 'empresaListModification', content: 'OK'});
this.isSaving = false;
this.activeModal.dismiss(result);
}
private onSaveError(error) {
try {
error.json();
} catch (exception) {
error.message = error.text();
}
this.isSaving = false;
this.onError(error);
}
private onError(error) {
this.alertService.error(error.message, null, null);
}
trackCepById(index: number, item: Cep) {
return item.id;
}
trackEstadoById(index: number, item: Estado) {
return item.id;
}
trackCidadeById(index: number, item: Cidade) {
return item.id;
}
}
奇怪的是,值被加载到表单中并显示在页面上,我甚至可以更改它们,但是控制台会打印几次上面的错误
我检查了对象,两个变量都不为空