我正在一个应用程序中列出候选人列表。当我单击候选人姓名时,它应该打开一个包含候选人详细信息的新标签。
我将各自的候选人ID存储在本地存储和打开窗口的新标签中,在该窗口中,我将从本地存储中检索候选人ID并获取数据。
我面临的问题是,如果我在新标签页中打开多个候选人,则候选人ID被最新的候选人ID覆盖。因此,如果我刷新新标签中的候选人详细信息页面,则会获取最新打开的候选人的数据。
我想到了在查询参数中发送候选人ID并隐藏查询参数。
任何人都可以建议我怎么做或其他替代方法吗?
答案 0 :(得分:0)
您可以使用FormData界面
public getCondidate(id: string): Observable<Condidate> {
const formData: FormData = new FormData();
formData.append('condidateId', id);
return this.http.post<Condidate>(%server_Url%, formData);
}
用户可以通过在查询中查询参数“ condidateId”来检索后端中的ID。 这样,查询参数将包含condidateId,不会在使用开发人员工具并检查“网络”部分中的查询的URL售出中显示。
除非您具有登录名或身份验证机制,否则请勿将condidateId保存在localStorage中。当从数据库中检索所有候选者后列出它们时,调用onClick来打开具有相应详细信息的页面的方法应使用相应的ID进行调用。例如
<div
<ul>
<li *ngFor="condidate of condidates">
<button (click)="getCondidate(condidate.id)">Get Condidate</button>
</li>
</ul>
</div>
getCondidate(condidate.id)方法应调用前面的代码。
希望有帮助。