2015-12-08 4 views
0

У меня есть контроллер «ListController», который необходимо заполнить данными на стороне сервера.завод не распознан контроллером

app.controller("ListController", function(){ 
    var bar = this; 
    bar.venues = MyFactory.load(); 
} 

, и я хотел, чтобы получить массив JSON от сервера, поэтому я думал, чтобы создать фабрику Усиливая «$ HTTP», как, например:

app.factory("MyFactory", ["$https", function($https){ 
    var myService = {}; 
    myService.load = function(){ 
    $http.get("scripts/Query.php").success(function(rows){ 
     myService.rows = rows; 
     return myService.rows; 
    }; 
    }; 
    return myService; 
}]); 

Итак, я думал, что MyFactory бы быть вызванным изнутри контроллера приложения.

приложение - та же переменная, тип: angular.module ("BarMe", []);

Я получаю ошибку в моем JavaScript является: MyFactory неопределен

ответ

1

Вы не вводить завод в контроллере.

Попробуйте, как это

app.controller("ListController", function(MyFactory){ 

} 

Более ваш метод имеет обратный вызов прямой правопреемник не принесет вам никаких данных

Попробуйте как этого

MyFactory.load().then(function(data){ 
    bar.venues = data; 
}); 

Вы также должны вернуть $ http с ответом на заводе

myService.load = function(){ 
    return $http.get("scripts/Query.php").success(function(rows){ 
     return rows; 
    }; 
    }; 
+0

У меня есть настройка myService.rows = rows, а затем выводятся по существу строки. Собственный избыток. Итак, успех у меня был «return rows;», но кажется, что он все еще дает мне ошибку инжектора для MyFactory – Fallenreaper

+0

вы можете предоставить свой полный код с помощью html ?? будет лучше, если вы сможете предоставить jsfiddle –

+0

О, мне показалось, что это работает. Твой путь сработал. Кажется, у меня были проблемы, как вы сказали. Я думал, что мне не понадобится «то» функция. Благодаря! – Fallenreaper

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