我使用角度6,在更新/创建对象并重新加载所有数据后出现问题,看来旧数据已重新加载。我尝试添加随机数,但效果不佳。
我的代码如下:
在我的服务范围内:
getPayCalendars(): Observable<PayCalendar[]>
{
return this.authHttp.get<PayCalendar[]>(this.baseUrl+"payCalendar/all"+"?rand="+Math.random());
}
在我的组件内部:
reloadPayCalendars()
{
console.log("RELOAD PAYCALS");
this.adminSettingService.getPayCalendars().subscribe(
(result) => {
this.payCalendars = result;
console.log(`Result: ${JSON.stringify(result)}`);
}, error => {
this.alertify.error("Error: Cannot retrive pay calendars");
}
);
}
使用EventEmitter保存子组件中的数据后,从此方法调用ReloadCalendars()。我看到数据库中的数据已更改。
updatingData(result: any)
{
this.reloadPayCalendars();
this.modalRef.hide();
}
<app-form-paycalendar
[id]="id"
[name]="name"
[frequency]="frequency"
[payPeriodStartDate]="payPeriodStartDate"
[payPeriodEndDate]="payPeriodEndDate"
[nextPaymentDate]="nextPaymentDate"
(onSubmit)="updatingData($event)"></app-form-paycalendar>
我添加了另一个按钮来调用reloadPayCalendars(),它获取了新的/更新的数据。
<button type="button" class="btn btn-primary" (click)="reloadPayCalendars()"> Reload </button>
该如何解决?
Fyi:后端将Dotnet Core 2.1与C#结合使用。
编辑: 在我用来保存/更新数据的位置添加组件
儿童组件:
save()
{
let payCalendar = this.editForm.getRawValue();
if(payCalendar.id != null){
this.adminService.updatePayCalendar(payCalendar).subscribe(
result => {
payCalendar = result ;
this.alertify.success("Update Pay Calendar Successfully");
}, error => {
this.alertify.error(error);
}
);
}else {
this.adminService.createPayCalendar(payCalendar).subscribe(
result => {
payCalendar = result ;
this.alertify.success("Update Pay Calendar Successfully");
}, error => {
this.alertify.error(error);
}
);
}
this.onSubmit.emit({payCalendar: payCalendar});
}
因此调用此方法后,它将发出给父对象,并且上面的父对象称为“ updatingData()”。
答案 0 :(得分:0)
我找到了解决方案。我仍在后台进行创建/更新时检索数据。所以我在完成创建/更新数据后发出事件。
save()
{
let payCalendar = this.editForm.getRawValue();
let opResult: PayCalendar[] ;
if(payCalendar.id != null){
this.adminService.updatePayCalendar(payCalendar).subscribe(
result => {
opResult = result;
this.alertify.success("Update Pay Calendar Successfully");
**this.onSubmit.emit({payCalendars: opResult});**
}, error => {
this.alertify.error(error);
}
);
}else {
this.adminService.createPayCalendar(payCalendar).subscribe(
result => {
opResult = result;
this.alertify.success("Create Pay Calendar Successfully");
**this.onSubmit.emit({payCalendars: opResult});**
}, error => {
this.alertify.error(error);
}
);
}
}