在angularjs中使用工厂获取错误:[$ injector:undef]
我正在创建一个新的角度应用程序和使用工厂,但是当我得到一个错误是
错误:[$ injector:undef] http://errors.angularjs.org/1.4.5/$injector/undef?p0=错误数据(原生),位于https://ajax.googleapis.com/ajax/libs/ angularjs / 1.4.5 / angular.min.js:6:416在Object。$ get(https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:37:32 )在https://ajax.googleapis.com上的Object.e [作为调用](https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:96) /ajax/libs/angularjs/1.4.5/angular.min.js:40:410 at d(https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:38 :308)at e(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)在b。$ get(https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular .min.js:80:257)at s(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js:12:165)
var app = angular.module('testapp', ['ngRoute']); app.config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/userlist', { title: 'List of all the users', templateUrl: 'userlist.html', controller: 'listuser' }) .when('/profile',{ title:'user detail page', templateUrl:'profile.html', controller:'listuser' }) .otherwise({ redirectTo: '/userlist' }); }]) app.factory("Data", ['$http','$log', function ($http,$log) { var obj = {}; obj.post = function (q, object) { return $http({ method: 'POST', url:'userdetail.php', data: object.user }) .then(function (results) { $log.log(results); return results.data; }); }; }]); app.controller('listuser',['Data', function ($scope,$http,$log,$window,Data) { $scope.userdetail = {}; var init = function () { $http({ method: 'POST', url: 'apisource.php', }) .then(function (results) { $scope.data=results.data; }); }; init(); $scope.douserdetail = function(user) { Data.post({ user: user }).then(function (results) { if (results.status == "success") { //$location.path('dashboard'); } }); }; }]);
角度中的工厂函数预计会返回一个对象,但您的"Data"
工厂不会返回任何内容。 只需在工厂功能的最后添加以下内容即可解决问题:
return obj;
看看你的堆栈跟踪提供的链接。 你的工厂必须返回一个值:
app.factory("Data", ['$http','$log',
function ($http,$log) {
var obj = {};
...
return obj;
}]);
有很多错误,在控制器中使用$ http,目的是什么
你在init里面调用init()会导致无限循环
你的服务没有返回任何东西
我会建议首先检查基本角度
链接地址: http://www.djcxy.com/p/77609.html上一篇: using factory in angularjs getting Error: [$injector:undef]
下一篇: angularjs view loads only on hard refresh and not on redirect