4

我正在尝试获取加载 div 以显示我的角度模块何时与服务器联系。我正在使用 AngularJS 1.0.1 和 AngularJS Resources 1.0.1 来扩展 HTML 和 jquery 1.7.2 的功能,以获得一些额外的 dom 操作和 ajax 支持。

我已经发现,如果我在 async false 中运行 ajax 调用,加载 div 将不会显示,除了 Firefox,它显示但动画 gif 不是动画。

如果我在 async true 中运行 ajax 调用,则返回的数据不会加载到已加载模板部分的角度模型变量中。

是否有可能获得一个动画加载 div 来显示并将角度数据加载到模型中?

4

1 回答 1

12

希望我正确理解你。您想显示 ajax 请求的加载进度。为此,您需要一个响应拦截器。这是一个如何执行此操作的示例http://jsfiddle.net/zdam/dBR2r/

// register the interceptor as a service, intercepts ALL angular ajax http calls
.factory('myHttpInterceptor', function ($q, $window, $rootScope) {
    return function (promise) {
        $rootScope.nowloading = true; // use ng-show="nowloading" on element containing spinner
        return promise.then(function (response) {
            // do something on success
            $rootScope.nowloading = false; // need to turn it off on success 
            return response;

        }, function (response) {
            // do something on error
            $rootScope.nowloading = false;  // need to turn it off on failure
            $rootScope.network_error = true;   // you might want to show an error icon.
            return $q.reject(response);
        });
    };

希望这可以帮助

- 担

于 2012-07-26T21:00:50.070 回答