2016-12-14 8 views
0

Я использую fixer.io и money.js для конвертации валюты. money.js используется для конвертации валюты и fixer.io - это api, который получает последние курсы обмена. Мне нужно загрузить последние курсы обмена в объект money.js rate.Basic Angular - Как загрузить ответ json http в другой объект json

Так как я использую угловатый, money.js загружается как:

var fx = require("money"); 

Для того, чтобы переход на работу, мы должны определить fx.base и fx.rates вроде этого:

fx.base = "USD"; 
fx.rates = { 
    "EUR" : 0.745101, // eg. 1 USD === 0.745101 EUR 
    "GBP" : 0.647710, // etc... 
    "HKD" : 7.781919, 
    "USD" : 1,  // always include the base rate (1:1) 
    /* etc */ 
} 

Однако , а не жестко запрограммированные данные для fx.rates, которые будут заполнены из запроса GET API-интерфейсу fixer.io, который вернет этот JSON: http://api.fixer.io/latest

Я полный noob для углового, поэтому я не понимаю, как загрузить ответ json в другой объект json.

Что такое правильный способ сделать что-то вроде:

var response = $http.get("http://api.fixer.io/latest"); 
fx.rates = response; 

ответ

1

Это довольно просто, используя http promise в Угловом. Чтобы выполнить обещание, вы используете метод .then. Все, что вам нужно, это функция обратного вызова для обработки данных. :

var response = $http.get("http://api.fixer.io/latest"); 

//handle promise 
response.then(function(response) { 
    //this is response from the api fixer. The data is the body payload 
    fx.rates = response.data; 
}, function(error) { 
    //handle error here, if there is any. 
}); 

Вот working plnkr, если вам это нужно.

+0

Это работает, даже если json включает другие поля? Если вы посмотрите на ответ Json для этого URL-адреса, он также включает базовый атрибут и атрибут даты, а затем ставки. Так что это не то, что мне действительно нужно больше, например, 'fx.rates = response.data.rates' – lmo523

+0

Еще один вопрос - также стоит ли в контроллере обещание $ http? – lmo523

+0

Да. Данные response.data включают в себя все элементы тела полезной нагрузки. Поэтому, если данные имеют 1000 свойств, они будут содержать каждый из них. $ http - это служба, которая вводится в контроллер, как показано в plnkr – CozyAzure

 Смежные вопросы

  • Нет связанных вопросов^_^