我有一個叫做my-list
的指令,它將array
作爲輸入數據,我使用ng-repeat
來重複遍歷數組並生成一個列表。如果array
中有許多objects
,則列表生成速度非常慢。如何在角度編譯過程中顯示一些動畫
雖然生成了DOM
元素,但我想顯示微調器動畫。但是,當生成DOM
元素時,UI將被凍結。
我想知道是否有解決這個問題的方法。
我有一個叫做my-list
的指令,它將array
作爲輸入數據,我使用ng-repeat
來重複遍歷數組並生成一個列表。如果array
中有許多objects
,則列表生成速度非常慢。如何在角度編譯過程中顯示一些動畫
雖然生成了DOM
元素,但我想顯示微調器動畫。但是,當生成DOM
元素時,UI將被凍結。
我想知道是否有解決這個問題的方法。
您可以使用$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…
</div>
請求之前,只要你應該設置你的控制器變量錯誤如下: (其非工作碼只是例子)
$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
解決的辦法是將數組的人口分成更易於管理的部分,從而允許應用程序消化小的變化你會得到另一個小的改變來消化它。此外,如果您的數據存在於API中,只需足以證明屏幕上顯示更多內容,並且在用戶滾動結束時獲得更多內容。 –