Получение ошибки при отображении значения, поступающего от сервиса в Angular - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть служба в ключе: значение или в countryCode : countryName pair

Servicve ->

{"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"}

Я создал интерфейс для получения значения из службы

interface

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

, что, вероятно, создает проблему при получении значения так, как я хочу

, если вы видите мой ответ, когда я пишу console.log (this.counrtyCode) Отображается как ->

AD: "Андорра" AE: "Объединенные Арабские Эмираты"AF: «Афганистан» AG: «Антигуа и Барбуда» AI: «Ангилья» AL: «Албания»

, где AD - это ключ, а Андорра - это ценность. Может быть, если я смогу изменить ответ следующим образом.{[code: "AD", страна: "страна"]} тогда я могу уловить ответ по-своему , я пытался это сделать, но я получаю ошибку Как я могу это сделать ..?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Хотя некоторые ошибки трассировки были бы полезны.Но я думаю, вы можете попытаться отформатировать ваши данные следующим образом.

@Injectable()
export class DataService {

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

export interface IcounrtyCode {
  code: string;
  country: string;
}
0 голосов
/ 26 сентября 2018

Вы, вероятно, хотите создать своего рода интерфейс словаря

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

Вы должны иметь возможность сопоставить свой ответ с этим.

Проблема, с которой вы столкнулись, заключается в том, что вы пытаетесьсопоставьте ваш объект с вашим IcounrtyCode интерфейсом, но json, возвращенный из сервиса, имеет неправильную форму.Это должно быть что-то вроде следующего:

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

Я бы порекомендовал изменить ответ сервера на правильный формат json, если у вас есть контроль над кодом сервера.

...