我创建了一个AngularJs应用程序。
我有一个控制器,当我点击特定按钮时,我需要向服务器发送信息。 控制器有一个名为" button_clicked"
的功能$scope.button_clicked = function () {
1 var currentObject = $scope.getCurrentObject;
2 $http.post(ENV.server_prefix + 'object/addObject/', currentObject)
3 .then(function (data, status) {
4 //Doing something!!
5 }).error(function (data, status, params) {
6 alert(data);
7 });
};
当我运行代码时,执行回调。但是在控制台中出现错误: " undefined不是一个函数"它指向第5行
为什么会出现此错误以及如何处理?
答案 0 :(得分:3)
尝试使用success
:
$scope.button_clicked = function () {
var currentObject = $scope.getCurrentObject;
$http.post(ENV.server_prefix + 'object/addObject/', currentObject)
.success(function (data, status) {
//Doing something!!
}).error(function (data, status, params) {
alert(data);
});
};
使用then
时,错误处理程序应作为第二个参数传递:
$http.post(ENV.server_prefix + 'object/addObject/', currentObject)
.then(function (data, status) {
//Doing something!!
}, function (data, status, params) {
alert(data);
});
答案 1 :(得分:2)
你在这里混淆了then
的语法。如果使用then
,它需要两个参数,第一个是成功处理程序,第二个是错误处理程序。
$scope.button_clicked = function () {
var currentObject = $scope.getCurrentObject;
$http.post(ENV.server_prefix + 'object/addObject/', currentObject)
.then(function (data, status) {
//Doing something!!
}, function(data, status, params) {
alert(data);
});
});
};