我有一个Util.ts
,它将具有所有API端点。
在我的组件中,将导入Api
类并使用API。
现在,API端点之一具有动态值,需要将其附加到URL。
Utils.ts
export class Api {
public static PROGRESS_ISSUE = 'https://xxx/rest/api/2/search?jql=project%20%3D%2025764%20AND%20status%20%3D%20%22In%20Progress%22&fields=id,key,status,project&maxResults=100'
}
在上面,我想将project
和status
设为要在服务中传递的动态值。
Service.ts
import { Api } from './api/utils';
getJiraOpenIssues(id: number, status:string) {
return this.http.get<any>( Api.PROGRESS_ISSUE )
.subscribe(count => console.log(count.total));
}
答案 0 :(得分:1)
您可以在PROGRESS_ISSUE上放置一些占位符字符串,然后使用replace
将其替换为实际值:
export class Api {
public static PROGRESS_ISSUE = "https://xxx/rest/api/2/search?jql=project=PROJECTPLACEHOLDER&status=STATUSPLACEHOLDER&fields=id,key,status,project&maxResults=100"
}
然后,在您的getJiraOpenIssues
方法中,使用replace:
import { Api } from './api/utils';
getJiraOpenIssues(id: number, status: string) {
const apiUrl = Api.PROGRESS_ISSUE
.replace('PROJECTPLACEHOLDER', 'YOUR PROJECT ID HERE')
.replace('STATUSPLACEHOLDER', 'YOUR PROJECT STATUS HERE');
return this.http.get<any>(apiUrl)
.subscribe(count => console.log(count.total));
}
答案 1 :(得分:0)
您可以简单地附加类似我们用+运算符连接字符串的值。
getJiraOpenIssues(id: number, status:string) {
return this.http.get(Api.PROGRESS_ISSUE + '' + id + '/'+status)
.map((response) => response.json());
}