Angular 从7中的服务调用id
我有一个web api调用。但是有身份证 我有这个:Angular 从7中的服务调用id,angular,web-services,Angular,Web Services,我有一个web 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/personId';
然后我这样调用这个方法:
return this.http.get<DiplomaModel>(this.apiDiploma, spinnerMessage).pipe(map(result => result.documents));
所以这个人被硬编码了。它起作用了
那么我要改变什么呢
多谢各位
这是api方法:
private readonly apiDiploma = 'api/support/teachers/personId/diploma/';
所以我需要一个来自:
export class TeacherSearchModel {
personId: number;
name: string;
dateOfBirth: string;
bsn: string;
registerNumber: string;
}
但如果我这样做:
private readonly apiDiploma = 'api/support/teachers/1001/diploma/';
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));
}
假设
personId
是一个包含个人id的变量,只需将personId
连接到您的URL:'api/support/teachers/'+personId
或'api/support/teachers/${personId}'
您应该声明一个名为personId
的属性,您可以根据需要/逻辑为其赋值。当使用es6模板文本进行服务调用时,使用personid
替换apipdiplificate
中的personid。${this.apipdiplificate}${this.personid}
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));
private readonly-apipdiplication='api/support/personid/diplication/';
personiId='1234'//您可以动态更改personid。
返回this.http.get(this.api.replace('personid',this.personid),spinnerMessage).pipe(map(result=>result.documents));
不言自明,不是吗?您必须连接/插入字符串部分和值,以便在调用时创建传入的URL字符串。另一个问题是,您的硬编码url字符串不是以文凭
结尾,而您测试的字符串是以结尾的。因此,url由3部分组成:'api/support/teachers/'+personId+'/diplication/'
谢谢。但对web api的调用如下所示:private readonly apipdiplificate='api/support/teachers/personId/diplificate/';文凭是像personid一样的静态字符串还是动态值?您的问题似乎没有说明“文凭”是静态值还是动态值?只需按照我的答案操作即可,您不需要添加${personid}
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));