我有一个服务文件,其中有两个方法getdata和delete,因为数据来自API。 getdata方法工作正常。
我在该siteId的delete()中遇到问题,它没有读取任何数据。如果单击“保存”按钮,它应该标识站点ID并删除该特定数据。但是我认为我在服务文件和组件文件中写错了。
服务
datasites : Data
getData(): Promise<PagedResult<data>> {
const url = `${environment.API_URL}/data/GetData`;
//See that is a "simple" get
return this.httpClient.get<PagedResult<data>>(url).toPromise();
}
delete(): Promise<Data>{
alert(2);
const siteId = this.datasites.principalId;
const url = `${environment.ADMIN_API_URL}/sites/DeleteSite?siteId=`+ siteId;
console.log(siteId);
return this.httpClient.post<Sites>(url, request).toPromise();
}
component.ts
async ngOnInit(){
alert("***********");
this.data = await this.dataService.getData();
console.log(this.data[0].principalId);
this.deleteSiteId = this.data[0].principalId;
console.log(this.deleteSiteId);
}
delete(data){
alert(aaaaaaaaa);
this.dataService.delete(data);
console.log(data.principalId);
}
showButtons: boolean = false;
clickEvent(data){
data.isClicked = !data.isClicked;
this.showButtons = !data.showButtons;
}
}
.html
<div *ngIf="showButtons">
<button (click)="delete()">Save</button>
</div>
最佳答案
我可以清楚地看到您的代码有太多问题。
显而易见的是,在使用的任何编辑器中都没有lint。如果您有,那您将发现问题。 ;)
除此之外,您还要在component.ts文件中调用delete()方法,而该方法不需要任何参数。
您使用service.ts文件中的delete()做相同的事情,只是相反。呵呵
如果您可以在StackBlitz或任何此类站点中复制上述问题,这将非常有用。