我正在使用Angularjs尝试一个简单的http应用程序。 我的代码是
var studentApp = angular.module('studentApp',['ui.bootstrap']);
studentApp.factory('studentSession', function($http){
return {
getSessions: function() {
return $http.post('/services', {
type : 'getSource',
ID : 'TP001'
});
}
}
});
studentApp.controller('studentMenu',function($scope, studentSession){
studentSession.getSessions().success($scope.handleSuccess);
$scope.handleSuccess = function(data, status) {
console.log(data);
};
});
尝试运行上面的代码时,我在chrome中收到错误Undefined is not a function
。通过stackoverflow搜索建议的修复是为功能提供范围。在确定函数范围后,错误仍然存在。
可疑角度文件损坏的问题,因为如果我在控制器中移动getSession代码,代码工作正常。但错误仍存在于角度版本1.0.6和1.1.4(未压缩和缩小版本)上。
Firefox中的错误有所不同。其fn is not a function
具有未压缩的angularjs,b is not a function
具有缩小的angularjs。
有关如何解决此问题的任何建议?
答案 0 :(得分:1)
Oki所以基于以下代码的评论
var studentApp = angular.module('studentApp',['ui.bootstrap']);
studentApp.factory('studentSession', function($http){
return {
getSessions: function() {
return $http.post('/services', {
type : 'getSource',
ID : 'TP001'
});
}
}
});
studentApp.controller('studentMenu',function($scope, studentSession){
//------Code Change---------
//Moved before function call.
$scope.handleSuccess = function(data, status) {
console.log(data);
};
studentSession.getSessions().success($scope.handleSuccess);
});