2015-07-08 3 views
1

Я занимаюсь тестированием с помощью API в apiary.io, и я хотел вызвать некоторые данные из него с помощью Angular, но он, похоже, не корректно называется. Это должно быть довольно просто, так что я не уверен, что случилось:Угловой http не работает

HTML:

<span><a href="network-updates.html">{{user.text}}</a></span> 

JS:

var MainController = function($scope, $http){ 

var usercomplete = function(response){ 
    $scope.user = response.data; 
    }; 

    $http.get("http://private-abc123-.apiary-mock.com/bus") 
.then(usercomplete); 

    }; 

JSON:

{ 
"Header" : "heading", 
"text" : "hello" 
} 
+0

Попробуйте синтаксического анализа JSON: 'товару angular.fromJson (ответ)' –

ответ

1

Это работает для меня из коробки попробовать: (Это решение уже не исправишь, см обновление ниже)

var a = angular.module('a', []); 

a.controller('dbCtrl', ['$scope', '$http', function ($scope, $http) { 

$scope.loadData = function() { 
    $http.get("url") 
     .success(function(data){ 
      $scope.data = data; //return if success on fetch 
     }) 
     .error(function() { 
      $scope.data = "error in fetching data"; //return if error on fetch 
     }); 
    }; 

    $scope.loadData(); //return loadData function 

}]); 

Update:

var a = angular.module('a', []); 

a.controller('dbCtrl', ['$scope', '$http', function ($scope, $http) { 

$scope.loadData = function() { 
    $http.get("url") 
     .then(function(data){ 
      $scope.data = data; //return if success on fetch 
     }, function() { 
      $scope.data = "error in fetching data"; //return if error on fetch 
     }); 
    }; 

    $scope.loadData(); //return loadData function 

}]); 
+0

Вы бы поместили это в MainController, как у меня, или у вас это как отдельный сервис? это имеет значение? – Whirlwind990

+0

@ Whirlwind990 прямо внутри основного контроллера, плохо добавьте мой полный контроллер без каких-либо фильтров 1 сек. – Spade

+0

Хм, до сих пор не повезло. Итак, с вашим контроллером я бы назвал HTML следующим: {{loadData.text}}? – Whirlwind990

1

Я думаю, ваш ответ не имеет ключа data. Он должен быть непосредственно присвоен $scope.user, например $scope.user=response. Это должно сработать для вас.

0

Привет вы можете использовать следующий фрагмент кода, чтобы получить данные с сервера

$http({ 
    url: "http://private-abc123-.apiary-mock.com/bus", 
    method: "GET", 
    params: {user_id: user.id} // If you required params 
}).success(function(data, status, headers, config) { 
     // You can set scope here 
     $scope.user = data; 
}) 
Смежные вопросы