Jquery 如何在angularjs中关闭特定$http请求的微调器指令

Jquery 如何在angularjs中关闭特定$http请求的微调器指令,jquery,angularjs,Jquery,Angularjs,此指令将自动打开/关闭加载图标。发生$http请求时 我的代码 angular.module('directive.loading', []) .directive('loading', ['$http' ,function ($http) { return { restrict: 'A', link: function (scope, elm, attrs)

此指令将自动打开/关闭加载图标。发生$http请求时

我的代码

angular.module('directive.loading', [])
        .directive('loading',   ['$http' ,function ($http)
        {
            return {
                restrict: 'A',
                link: function (scope, elm, attrs)
                {
                    scope.isLoading = function () {
                        return $http.pendingRequests.length > 0;
                    };

                    scope.$watch(scope.isLoading, function (v)
                    {
                        if(v){
                            elm.show();
                        }else{
                            elm.hide();
                        }
                    });
                }
            };

        }]);
<div class="loading-spiner-holder" data-loading ><div class="loading-spiner"><img src="..." /></div></div>
我的html代码

angular.module('directive.loading', [])
        .directive('loading',   ['$http' ,function ($http)
        {
            return {
                restrict: 'A',
                link: function (scope, elm, attrs)
                {
                    scope.isLoading = function () {
                        return $http.pendingRequests.length > 0;
                    };

                    scope.$watch(scope.isLoading, function (v)
                    {
                        if(v){
                            elm.show();
                        }else{
                            elm.hide();
                        }
                    });
                }
            };

        }]);
<div class="loading-spiner-holder" data-loading ><div class="loading-spiner"><img src="..." /></div></div>


我的场景是如何关闭页面中的特定请求。

您可以添加一个条件,然后通过rootscope对其进行更改。在ajax请求之前,只需调用$rootScope.$emit('stopLoader')


这显然不是最好的解决方案,但仍然有效。

您需要将$rootScope依赖项注入到您的函数中。因此,
$on
$emit
是我的错。在这里,我更改了答案。