2016-05-02 31 views
0

我有一個叫做my-list的指令,它將array作爲輸入數據,我使用ng-repeat來重複遍歷數組並生成一個列表。如果array中有許多objects,則列表生成速度非常慢。如何在角度編譯過程中顯示一些動畫

雖然生成了DOM元素,但我想顯示微調器動畫。但是,當生成DOM元素時,UI將被凍結。

我想知道是否有解決這個問題的方法。

+2

解決的辦法是將數組的人口分成更易於管理的部分,從而允許應用程序消化小的變化你會得到另一個小的改變來消化它。此外,如果您的數據存在於API中,只需足以證明屏幕上顯示更多內容,並且在用戶滾動結束時獲得更多內容。 –

回答

0

您可以使用$last財產的一個指令:

指令:

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:

<div ng-repeat="thing in things" last-item-loaded></div> 

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

請求之前,只要你應該設置你的控制器變量錯誤如下: (其非工作碼只是例子)

$scope.someHttpRequestOnClick= function() { 
    $scope.requestBusy = true; 
    $http(request).then(onSuccess, function(response) { 
     onFailure(response, failure); 
     ...... 
     }); 
     ...... 
    }; 

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

我推薦角材料mdProgressCircular指令爲這樣的HTML指示器:

<div class="indicator" ng-if="requestBusy"> 
      <md-progress-circular class="md-warn md-hue-3" md-diameter="80"></md-progress-circular> 
     </div> 

約mdProgressCircular ANG角材料的詳細信息

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

相關問題