首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在角度编译过程中显示一些动画

如何在角度编译过程中显示一些动画
EN

Stack Overflow用户
提问于 2016-05-02 22:03:41
回答 2查看 63关注 0票数 0

我有一个名为my-list的指令,它接受array作为输入数据,我使用ng-repeat在数组中重复并生成一个列表。如果array中有许多objects,那么该列表的生成速度会非常慢。

在生成DOM元素时,我想显示一个微调器动画。但是,在生成DOM元素时,UI是冻结的。

我想知道是否有解决这个问题的办法。

EN

回答 2

Stack Overflow用户

发布于 2016-05-02 22:16:31

您可以在指令中使用$last属性:

指令:

代码语言:javascript
复制
app.directive("lastItemLoaded", function() {
    return function(scope, element, attrs) {
        if(scope.$last) {
            scope.everythingLoaded = true;
            scope.$apply();
        }
    };
}

app.controller("MainCtrl", function($scope) {
    $scope.everythingLoaded = false;
});

HTML:

代码语言:javascript
复制
<div ng-repeat="thing in things" last-item-loaded></div>

<div id="mySpinner" ng-if="!everythingLoaded">
    Loading.  Please wait&hellip;
</div>
票数 0
EN

Stack Overflow用户

发布于 2016-05-02 22:30:13

在请求之前,您应该像这样设置您的控制器变量为false:(它的无效代码只是示例)

代码语言:javascript
复制
$scope.someHttpRequestOnClick= function () {
     $scope.requestBusy = true;
     $http(request).then( onSuccess, function(response) {
        onFailure(response, failure);
       ......
      });
      ......
    };

function onSuccess(response){
 $scope.requestBusy = false;
  ....
}

我推荐这样的mdProgressCircular指示器的angular-material html指令:

代码语言:javascript
复制
<div class="indicator" ng-if="requestBusy">
          <md-progress-circular class="md-warn md-hue-3" md-diameter="80"></md-progress-circular>
        </div>

有关mdProgressCircular和angular-material的更多信息

https://material.angularjs.org/latest/api/directive/mdProgressCircular

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

https://stackoverflow.com/questions/36984383

复制
相关文章

相似问题

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