2014-10-08 62 views
0

我正在用AngularJS和Angular Bootstrap製作一個Web應用程序。我正在使用模式來允許用戶從列表中選擇多個項目中的一個。該列表以ng-repeat呈現。如何加速在Angular應用程序中顯示模態?

在一些移動平臺上,用戶按下啓動模式的按鈕和最終出現​​模式時,會有相當的延遲(3-5秒)。我不確定是否等待是由模態顯示之前的Angular渲染DOM模型引起的,還是由模態內容的絕對數量造成的。它可能是兩個。當我刪除ng-repeat列表時,模式即時加載。

我需要做以下之一:

(1)原因角度來構建DOM的模式已經顯示了。這並不理想,但至少模式的顯示會讓用戶知道他們的觸摸已經註冊並正在發生。

(2)儘管大量的內容,導致模式更快地顯示。

任何有關如何使這些發生的想法?

+0

ng-repeat顯示多少數據? (多少次迭代,每個項目有多少個「colums」/「字段」?) – 2014-10-08 07:36:06

+0

移動設備上有300ms的延遲觸摸操作:http://www.sitepoint.com/5-ways-prevent-300ms-click-延遲 - 移動設備/ – 2014-10-08 07:58:53

+0

@StephenFriedrich有幾百個重複。此外,該列表還有幾個過濾器。當我刪除ng-repeat時,模態幾乎瞬間打開。 – 2014-10-08 12:25:35

回答

0

模態實例有一個屬性rendered這是一個承諾,當一個模態被渲染時解決。您可能會延遲將大型數據集分配到模式範圍,直到解決該承諾。

$uibModal.open({ 
    controller: function ($uibModalInstance, $scope, data) { 
     $uibModalInstance.rendered.then(function() { 
      $scope.data = data; 
     }); 
    }, 
    ... 
}); 

https://angular-ui.github.io/bootstrap/#/modal

但在我看來,情態動詞不應該被用於大型內容塊。

相關問題