Аз съм създаването на нова ъглова 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, което ще доведе до безкрайната линия
Службата не връща нищо
Аз ще предложа първо да проверите основите ъглови