2014-09-04 2 views
1

Я думаю, что $http.get часть не работает. Это мой код:

.controller('home', function($scope, request){ 
      $scope.list = request.get(baseUrl); 
    }) 
.factory('request', function($http){ 
     var get = function(url){ 
      $http.get(url).success(function(data){ 
       console.log(data); 
       return data; //returns nothing 
      }); 
     } 

     return { 
      get : get 
     } 
    }); 
+0

Определите функцию обратного вызова успеха, как этот 'функции (данные, статус, заголовки, config) ', а затем распечатать каждый аргумент в консоли и дать знать результат. – bmleite

+0

@bmleite функция успеха на самом деле не выполняется Я имею в виду, что $ http.get не работает – pyprism

+0

Почему вы говорите" $ http.get не работает »? Вы видите какую-либо ошибку в консоли? – bmleite

ответ

1

Вообще говоря, ваша функция не возвращает ничего вообще - если бы я называть request.GET(), он будет возвращать неопределенным. Вы хотите что-то вроде

.controller('home', function($scope, request){ 
    request.get(baseUrl).then(function(data){ // I prefer then and catch semantics 
     $scope.list = data;     // as they're standard promises form 
    })['catch'](function (err){console.log(err)}); 
}) 
.factory('request', function($http){ 
    var get = function(url){ 
     return $http.get(url).then(function(data){ 
      console.log(data); 
      return data; 
     }); 
    } 
    return { 
     get : get 
    } 
}); 

Хотя это лишнее запутывания для простого случая (я бы просто поставить $http.get().then().catch() вещи в контроллере, а не на заводе.

3

Попробуйте это.

.factory('request', function($http){ 
    var get = function(url){ 
     return $http.get(url).success(function(data){ 
      return data; 
     }); 
    } 

    return { 
     get : get 
    } 
}); 

Обновите свой контроллер.

request.get(url).then(function (data) { 

    $scope.data = data; 

}, function (response) { 
    // handle error 
}); 

http://plnkr.co/edit/eWXckgiwPNCGMlP0LQyk?p=preview

+0

Контроллер тоже ошибочен: 'request.get (baseUrl) .then (функция (данные) {$ scope.list = data});' Что вы сделали в плункере, я думаю, я должен был посмотреть на это в первую очередь ... Прости. – marneborn

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