从 Angular 7 中的服务调用 id



我有一个网络 api 调用。但是有身份证。

我有这个:

private readonly apiDiploma = 'api/support/teachers/personId';

然后我像这样调用此方法:

return this.http.get<DiplomaModel>(this.apiDiploma, spinnerMessage).pipe(map(result => result.documents));

但这行不通。但例如,如果我这样做:

private readonly apiDiploma = 'api/support/teachers/1001/diploma/';

所以 PersonId 硬编码。它有效。

那么我必须改变什么?

谢谢

这是 API 方法:

private readonly apiDiploma = 'api/support/teachers/personId/diploma/'; 

所以我需要来自以下位置的 PersonId:

export class TeacherSearchModel {
personId: number;
name: string;
dateOfBirth: string;
bsn: string;
registerNumber: string;
}

但是如果我这样做:

private readonly apiDiploma = 'api/support/teachers/${personId}/diploma';

然后这个:

getDiplomaDocumentList(spinnerMessage?: string): Observable<DocumentListModel> {
// Get and return diploma info from backend

return this.http.get<DiplomaModel>(this.apiDiploma,  spinnerMessage).pipe(map(result => result.documents));
}

我仍然收到错误:

GET http://localhost:6597/api/support/teachers/$%7BpersonId%7D/diploma 400 (Bad Request)
scheduleTask @ zone.js:3243
push.../../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:410

假设personId是一个包含人员ID的变量,只需personId连接到您的URL:'api/support/teachers/' + personId;'api/support/teachers/${personId}';

你应该声明一个名为personId的属性,你可以根据你的需要/逻辑为它赋值。 使用 ES6 模板文本${this.apiDiploma}${this.personid}进行服务调用时,使用personId替换apiDiploma中的 Person ID

private readonly apiDiploma = 'api/support/personid/diploma/';
personiId = '1234'; //you can change the personid dynamically.
return this.http.get<DiplomaModel>(this.apiDiploma.replace('personid',this.personid), spinnerMessage).pipe(map(result => result.documents));

相关内容

  • 没有找到相关文章

最新更新