【发布时间】:2014-06-13 19:16:19
【问题描述】:
我正在尝试通过工厂中的 $http 调用从我的 JSON 文件中加载数据,每次运行代码时都会遇到相同的错误。我该如何解决这个问题。
错误
TypeError: undefined is not a function
at Object.getFruitsData (http://localhost/test/JSON/js/controllers.js:12:18)
at new <anonymous> (http://localhost/test/JSON/js/controllers.js:3:16)
at invoke (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:3869:17)
at Object.instantiate (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:3880:23)
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:7134:28
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:6538:34
at forEach (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:330:20)
at nodeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:6525:11)
at compositeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:5986:15)
at compositeLinkFn (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js:5989:13)
我正在使用的代码在下面。
fruitsFactory.js
app.factory('fruitsData', function($http, $log){
return{
getFruitsData: function(succescb){
$http({method:'GET', url:'json/testList.json'})
.succes(function(data){
succescb(data);
})
.error(function(data){
$log.warn(data);
});
}
};
});
controller.js
app.controller('fruitsController',['$scope','fruitsData', function($scope, fruitsData){
fruitsData.getFruitsData(function(fruits){
$scope.fruits = fruits;
});
}]);
【问题讨论】:
-
成功拼写错误?成功了
-
这种特殊情况下的错误与异步调用无关
-
这与异步无关......就像 Dieter Goetelen 所说的那样,这完全是一个错字。您正在尝试调用一个名为 succes(arg) 的不存在的方法,而不是调用 success(arg)。
-
是的,这是关于错字的。所以我能够从 JSON 文件中检索数据,但现在的问题是如何从数据库中检索数据?我有一个 MySQL 数据库,我有一个 PHP 文件来获取数据并将其编码为 JSON。但在那之后我该怎么办?
标签: json angularjs http factory typeerror