我有一个服务文件,因为我有两种方法 getdata 和 delete,其中数据来自 API。 getdata 方法工作正常。
我在那个 siteId 的 delete() 中遇到问题,它没有读取任何数据。如果我点击保存按钮,它应该识别站点 ID 并删除该特定数据。但是我想我在服务文件和组件文件中写错了。
服务.ts
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();
}
组件.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>
最佳答案
我可以清楚地看到您的代码有太多问题。
显而易见的一点是,无论您使用什么编辑器,都没有 linter。如果你有那个,你就会发现问题所在。 ;)
除此之外,您在 component.ts 文件中调用 delete() 方法时没有任何参数,它确实需要.
您正在对 service.ts 文件中的 delete() 做同样的事情,只是相反。 呵呵
如果您能在 StackBlitz 中复制上述问题,那将非常有用或任何此类网站。
关于html - 如何在 Angular 的单个服务文件中传递来自不同方法的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52990437/