/ / използване на фабриката в angularjs получаване Грешка: [$ инжектор: undef] - angularjs, фабрика, ъглови услуги

използване на фабрика в angularjs получаване Грешка: [$ инжектор: undef] - angularjs, фабрика, ъглови услуги

Аз съм създаването на нова ъглова App и използва фабрика, но когато аз съм съм получаване на грешка, която е

Грешка: [$ injector: undef] http://errors.angularjs.org/1.4.5/$ Инжектор / undef? P0 = данни при грешка (роден) при https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:6:416 в обекта. $ get (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:37:32) в Object.e [както се позовава] (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:96) при https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:40:410 при d (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:38:308) в (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:64) в Object.g.instantiate (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:213) в б. $ get (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:80:257) при s (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js:12:165)


var app = ъглово.модул ("testapp", ["ngRoute"]); app.config ([ "$ routeProvider", функция ($ routeProvider) { $ RouteProvider. когато ("/ потребителски списък", { заглавие: "Списък на всички потребители", templateUrl: "userlist.html", контролер: "listuser" }) .При ( "/ профил", { заглавие: "страница с подробности за потребителя", templateUrl: "profile.html", контролер: "listuser" }) .в противен случай({ redirectTo: "/ userlist" }); }])  app.factory ("Данни", ["$ http", "$ лог", функция ($ http, $ log) { вар об = {};  obj.post = функция (q, обект) { връщане $ http ({ метод: "POST", URL адрес: "userdetail.php",  данни: object.user  }) .then (функция (резултати) { $ Log.log (резултати); return results.data; });  }; }]);  app.controller ("listuser", ["Данни", функция ($ scope, $ http, $ log, $ window, Data) { $ scope.userdetail = {}; var init = функция () { $ HTTP ({ метод: "POST", url: "apisource.php",  }) .then (функция (резултати) {  $ Scope.data = results.data;  }); }; в него(); $ scope.douserdetail = функция (потребител) { Data.post ({ потребител: потребител }), след това (функция (резултати) {  ако (results.status == "успех") { //$location.path("dashboard "); } }); };  }]);

Отговори:

2 за отговор № 1

Фабричните функции в ъглови се очаква да върнат обект, но вашият "Data" фабриката не връща нищо. Просто добавете следното в края на фабричната си функция, за да отстраните проблема:

return obj;

0 за отговор № 2

Обърнете внимание на връзка предоставени във вашите stacktrace. Вашата фабрика трябва да върне стойност:

app.factory("Data", ["$http","$log",
function ($http,$log) {
var obj = {};
...
return obj;
}]);

0 за отговор № 3

Има много грешки, в контролера си използвате $ http, каква е целта

Вие наричате init () вътре в init, което ще доведе до безкрайната линия

Службата не връща нищо

Аз ще предложа първо да проверите основите ъглови