Я пытаюсь использовать службу, чтобы получить некоторые данные с сервера, но у меня была проблема: даже консоль вышла из строя, когда я печатаю «myData.length», когда я пытаюсь найти длину переменной контроллера $ scope.test, скажите мне, что она не определена.
Что мне нужно сделать, чтобы использовать службу $ http внутри моего собственного сервиса?
app.controller('mainCtrl', ['$scope', 'mapServ',
function($scope, mapServ) {
$scope.test = [];
$scope.test = mapServ.test;
console.log('$scope.test = ' + $scope.test.length);
}]);
app.factory('mapServ', ['$http', function ($http) {
var path = "file path to my server data";
var out = {};
var myData = [];
out.test = $http.get(path).then(function (response) {
myData = response.data;
console.log(myData.length);
});
return out;
}]);
Вы, кажется, не понимают обещания. Прочитайте http://blog.ninja-squad.com/2015/05/28/angularjs-promises/ –
Посмотрите мой ответ на [как я могу отправить аякс-запросы?] (Http://stackoverflow.com/questions/40048960/how-can-i-send-requests-to-json/40052067 # 40052067) –