如何将Mat-Select值传递给API调用中的标头

时间:2020-03-13 10:31:37

标签: javascript angular typescript angular8

我有一个API,该API要求标头中包含国家/地区代码以及授权令牌和承载。 我能够在我的组件文件中获取mat-select值。 但是,我的api标头和令牌已在服务文件中设置。 谁能帮我弄清楚如何将mat-select的值从组件传递到服务文件?

目前,我正在将国家/地区值硬编码为'au',但我希望它根据每个垫选择下拉列表值进行设置。

用于在组件文件中获取垫选择值的代码:

onCountrySelection() {
console.log(this.countryValue);
sessionStorage.setItem('countryCode', this.countryValue);
}

服务类文件中的API;

uploadConfig(templateName, JsonBody) {
const header = new HttpHeaders().set(
  'Authorization',
  'Bearer ' + sessionStorage.getItem('token'),
).set(
  'country',
  'au'
);
return this.httpClient.post(
  this.localUrl + '/pattern/' + templateName + '/flow', JsonBody,
  { headers: header }
);
}

1 个答案:

答案 0 :(得分:1)

尝试在API方法的签名中添加其他参数:

uploadConfig(templateName, JsonBody, countryCode) {

    const header = new HttpHeaders().set(
      'Authorization', 'Bearer ' + sessionStorage.getItem('token'),
    ).set(
      'country', countryCode
    );
    return this.httpClient.post(
        this.localUrl + '/pattern/' + templateName + '/flow', JsonBody, { headers: header }
        );
}

然后在致电服务时,只需发送countryValue

uploadConfig(,,this.countryValue);