角度$http(..).成功不是函数帮助重写函数



我正在尝试为我志愿服务的小组修复一个网站。

我正在尝试将其从 Angular 1.3.16 更新到 Angular 1.6.4,但我收到一条错误消息:

类型错误: $http(...(.成功不是一种功能 在 b.$scope.init (角度定制.js:107(

从我通过调试它可以看出,似乎导致

它的代码是带有 .success 和 .error 函数的角度自定义.js文件:

$scope.init = function(){
        $http({
            method: 'post',
            url: url,
            data: $.param({ 'type' : 'getUsers' }),
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).
        success(function(data, status, headers, config) {
            if(data.success && !angular.isUndefined(data.data) ){
                $scope.post.users = data.data;
            }else{
                $scope.messageFailure(data.message);
            }
        }).
        error(function(data, status, headers, config) {
            //$scope.messageFailure(data.message);
        });
    };

我也把文件放在 plunker 1.3.16 文件在 Plunker

我知道这可能是 .success 和 .error 结果,但我不太了解 Angular 如何修复它。

我是一个自学成才的程序员,所以任何帮助都会很棒,所以我可以启动并运行这个小组。

提前感谢您的任何建议。杆

我建议您阅读本文不要使用 $http 的 .success((

             $http({
                method: 'post',
                url: url,
                data: $.param({'user' : $scope.tempUser, 'type' : 'save_user' }),
                headers: {'Content-Type': 'application/x-www-form-urlencoded'}
            }).
            then(function(response) {
               your code
               excuted when post request is success
            },function(response) {
               your code
               excuted when post request is failed
            });

响应从服务器返回,您可以调试以更深入地探索。

对于角度 1.6.4,请使用 .then 和 .catch 来处理响应和错误:

(请注意,您可以使用 $http.post 保存一些代码行(

$scope.init = function(){
        $http.post('yourURL', $scope.yourData).
        then(function(results) {
            if(results.data.success ){
                $scope.post.users = results.data;
            }else{
                $scope.messageFailure(results.data.message);
            }
        }).
        catch(function(results) {
            //$scope.messageFailure(results.data.message);
        });
    };

谢谢大家的帮助,看来我真的需要花点时间学习 Angular,因为我真的不明白它是如何工作的。

发现我之前的人从PHP和MySQL中的AngularJS插入更新删除中获取了代码

但它似乎出现在网络上的几个地方,因为其他人声称代码是他们的。可惜了。

再次感谢您的输入,但我想我可以让它在版本 1.5.11 上运行,我只需要在以后解决它。

最新更新