首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据加载时如何在AngularJS中显示等待消息?

数据加载时如何在AngularJS中显示等待消息?
EN

Stack Overflow用户
提问于 2013-08-21 21:13:03
回答 4查看 42.2K关注 0票数 19

我是AngularJS的新手,正在尝试找到在加载数据时如何显示等待消息的方法?我的意思是数据开始加载,显示消息,并在数据加载完成时删除它。

我已经在网上找过了,但是还没有找到我需要的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-21 21:16:37

代码语言:javascript
复制
<div ng-if="data.dataLoading">
    Loading...
</div>

JS

代码语言:javascript
复制
$scope.data.dataLoading = true;

return someService.getData().then(function (results) {                    
    ...
}).finally(function () {
    $scope.data.dataLoading = false;
});
票数 46
EN

Stack Overflow用户

发布于 2013-08-21 21:34:14

取决于您从何处加载数据。我使用的一个解决方案是创建一个LoadingService

代码语言:javascript
复制
app.factory('LoadingService', function($rootScope) {
    return {
        loading : function(message) {
             $rootScope.loadingMessage = message;
        },
        loaded : function() {
             $rootScope.loadingMessage = null;
        }
    }
}).controller('FooController', function($scope,$http,LoadingService) {

   $scope.loadSomeData = function() {
       LoadingService.loading('Data is loading');

       $http.get('/data').finally(function() {
            LoadingService.loaded();
       });
   };
});

因为我只有一个地方显示消息,所以我可以使用RootScope来处理这个问题。如果你想要一条加载消息多次出现,你也可以写一个指令来处理这个问题,就像Codezilla发布的那样

票数 5
EN

Stack Overflow用户

发布于 2014-01-17 00:51:44

编辑:不适用于版本1.3.0。使用请求/响应拦截器。

如果您希望全局侦听所有请求,并在有请求挂起时显示加载小部件,则可以使用request/response transformers计算请求数。您只需添加一个计数器,并在新请求时增加,在响应时减少。为此,我使用了一个提供者:

代码语言:javascript
复制
$httpProvider
  .defaults
  .transformRequest
  .push(function(data) {
      requestNotificationProvider
      .fireRequestStarted(data);
      return data;
});

transformResponse也是如此。然后,同一个提供程序保存有关有多少请求处于挂起状态的信息,您可以在指令中使用这些信息。你可以在这里阅读(&复制/粘贴代码)完整的博客帖子:http://www.kvetis.com/2014/01/angularjs-loading-widget.html,附件中有一个有效的演示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18358431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档