2015-12-14 4 views
0

Я создаю клиент AngularJS и подключаю его к API REST, который у меня работает на NodeJS. Я делаю GET, чтобы получить данные, перейдя по URL-адресу, а затем используя символ запаса, т. Е. localhost:8080/stocks/aapl для данных об акциях Apple. В AngularJS я использую $http службы, а затем делать привязку данных, как это:JSON Data in Angular

var restURL = "http://localhost:8080/stocks/" + searchSymbol; 

$http({ 
    method: 'GET', 
    url: restURL 
}).then(function successCallback(response) { 
    //Variables that are going to be used 
    var data, symbol, companyName; 
    //Parsing the data 
    data = angular.fromJson(response); 
    //Putting the data into the variables 
    symbol = data.symbol; 
    companyName = data.name; 
    //Putting data from variables into Angular code 
    $scope.companyName = companyName; 
    $scope.symbol = symbol; 
}, function errorCallback(response) { 
    var message = "Error getting response from server"; 
    $scope.errorMessage = message; 
}); 

и это то, что вид компонента выглядит следующим образом:

<h1>Search Stocks</h1> 
<p>Search for stocks using the text box below</p> 

<p><input type="text" ng-model="searchSymbol" placeholder="Search by Symbol"></p> 
<p><button ng-click="search()">Search</button></p> 

<p> {{ symbol }}</p> 
<p>{{ companyName }}</p> 

<p>{{ errorMessage }}</p> 

Когда я нажимаю кнопку, GET запрос отражается на сервере NodeJS, так как он показывает данные компании в терминальном режиме, однако я не могу понять, что он разобран в Angular.

+0

Консолировать значение данных после этой строки: 'data = angular.fromJson (response);'. Какова ценность объекта? –

+0

Отладка в первой строке, когда вы вернетесь «отклик» и проверьте, что это такое. Btw, вы можете просто написать '$ http.get (restUrl) .then (...'. – Arg0n

+0

@SeanPerkins. В результате я получаю {данные: {символ: "AAPL", имя: "Apple Inc.", цена : 110.949997}, статус: 200, headers: function, config: Object, statusText: «OK»} – HarryMoy

ответ

2

Поскольку ваш ответ является объект, который имеет данные о собственности в нем, которая содержит символ, ваше назначение символа symbol = data.symbol; необходимо изменить, чтобы symbol = data.data.symbol; А также для COMPANYNAME (использование data.data.name).

Посмотрите, работает ли это.