AngularJS 如何防止重复的http请求?

2024-04-20

过去的一天我一直在为一些奇怪的情况而苦苦挣扎。 发生的情况是,对于远程服务器上的 API 的 http 请求,偶尔会发送重复的请求。 任何人都可以提供有关如何避免这些重复请求的帮助吗?

这是我在工厂中使用的函数的示例:

factory.getAllConsultedClientsLogs = function(oParams) {

    var deferred = $q.defer();

    $http.post('url/to/api', oParams)
        .success(function(response) {
            deferred.resolve(response);
        })
        .error(function() {
            deferred.reject("Error! @factory.getAllConsultedClientsLogs");
        });

return deferred.promise;

};

...以及在控制器上使用上述功能的示例:

$scope.openConsultedClientsLogsModal = function(operator, date) {

    if (angular.isDefined(operator) && angular.isDefined(date)) {

        RrAuditingFactory.getAllConsultedClientsLogs({'operator':operator,'date':date}).then(function(promise) {

            if (angular.isObject(promise) && angular.isDefined(promise.error) && promise.error == 0) {

                var modalInstance = $modal.open({
                    templateUrl: 'path/partial',
                    controller: function($scope, $modalInstance, logsResult) {
                        $scope.logsResult = logsResult;
                    },
                    resolve: {
                        logsResult: function() {
                            return promise.result;
                        }
                    }
                });

                modalInstance.result.then(function() {
                }, function () {
                });

            } else {
                ErrorContext.setError(promise.errorMsg);
            }

        }, function(promise) {
            ErrorContext.setError(promise);
        });

    } else {

        ErrorContext.setError();

    }

};

提前谢谢你。希望有人能帮助我......


我遇到过这个问题,你可以这样解决:

检查你是否已经声明了两次 ng-controller ,你只需要声明一次 检查你是否声明了 data-ng-click ,如果是,则需要将其替换为 ng-click 就是这样

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 如何防止重复的http请求? 的相关文章

随机推荐