2015-12-21 40 views
0

我試圖在angularJS中構建一個包含數千個選項的選擇下拉菜單。視圖正在建立時,應用程序會掛起。有沒有辦法在加載圖像後面隱藏這個下拉菜單,直到選項完成構建?Spinner在等待ng-repeat時

+4

這與您的問題略有切線,但是您確定要使用1000個選項的下拉框嗎?根據您的應用程序,將這些細化到不同的組中並動態填充下拉列表可能會更方便用戶。您可能想嘗試異步加載下拉列表的內容。 –

+0

您可以爲您的Angular應用程序使用'cg-busy'。 –

回答

0

你可以使用一個簡單的指令,在ng-repeat結束映射回調。 這裏也是一個相當粗糙的demo

<h3 ng-repeat="name in names" repeat-end="onEnd()"></h3> 

app.controller("MyCtrl", function($scope, $timeout){ 
      $scope.finish = false; 
      $scope.onEnd = function(){ 
       $timeout(function(){ 
         alert("finish") 
        $scope.finish = true; 
       }, 1); 
      }; 

     }); 

app.directive("repeatEnd", function(){ 
      return { 
       restrict: "A", 
       link: function (scope, element, attrs) { 
        if (scope.$last) { 
         scope.$eval(attrs.repeatEnd); 
        } 
       } 
      }; 
     });