在显示来自Angular中的服务的价值时出现错误

时间:2018-09-26 07:06:20

标签: angular angular5 angular6 angular-services angular-module

我在Key:value或 countryCode countryName

中提供服务

服务->

{"BD": "Bangladesh", "BE": "Belgium", "BF": "Burkina Faso", "BG": "Bulgaria", "BA": "Bosnia and Herzegovina", "BB": "Barbados", "WF": "Wallis and Futuna", "BL": "Saint Barthelemy", "BM": "Bermuda", "BN": "Brunei", "BO": "Bolivia", "BH": "Bahrain", "BI": "Burundi", "BJ": "Benin", "BT": "Bhutan", "JM": "Jamaica"}

我已经创建了一个接口来从服务中获取价值

界面

export interface IcounrtyCode {
    code: string;
    country: string;
}

这可能在以我想要的方式接收值时造成问题

如果您在编写 console.log(this.counrtyCode)时看到了我的回应, 它显示为->

AD:“安道尔” AE:“阿拉伯联合酋长国” AF:“阿富汗” AG:“安提瓜和巴布达” AI:“安圭拉” AL:“阿尔巴尼亚”

其中AD是关键,而Andorra是值。 也许我可以按照以下方式更改回复。 {[code:“ AD”,country:“ country”]},然后我可以用自己的方式捕获响应,但是我尝试这样做 我该怎么做..?

2 个答案:

答案 0 :(得分:1)

您可能想创建一种“字典”界面

interface Dict {
    [key: string]: string;
}

您应该能够对此做出回应。

您遇到的问题是,您试图将对象映射到IcounrtyCode接口,但是从服务返回的json的形状不正确。 它将需要类似于以下内容:

{["code": "BD", "country":"Bangladesh"]}

如果您可以控制服务器代码,建议将服务器响应更改为正确的json格式。

答案 1 :(得分:-1)

尽管有些错误跟踪将很有用。但我想您可以尝试按以下格式设置数据格式。

@Injectable()
export class DataService {

 getData():IcounrtyCode[]{
  return [{code:"BD",country: "Bangladesh"}, {code:"BE", country:"Belgium"}]
 }
}

export interface IcounrtyCode {
  code: string;
  country: string;
}