2016-07-05 86 views
0

我將angular-block-ui module添加到了我的Angular項目中,但它並未在我的ajax請求期間自動阻止UI。blockUI不會停止

所以,我試圖手動使用它,它顯示塊屏幕,但它並沒有消除它。

因此,我做了一個更簡單的測試,只是顯示該塊,並試圖在2秒後停止它,併發生同樣的問題。屏幕被阻擋但它不會消失。

這裏是我的代碼:

'use strict'; 

myApp.controller('LoginModalCtrl', function ($scope, blockUI) { 

    $scope.login = function() { 
     console.log("on submit"); 

     blockUI.start(); 

     setTimeout(function(){ 
      //do what you need here 
      blockUI.stop(); 
      console.log("finished") 
     }, 2000); 
    } 

}) 

;

任何想法我做錯了什麼?

回答

0

所有這些「阻止」包括將div放在頁面頂部。而已。

那麼它的工作原理:http://plnkr.co/edit/HjXcgQD7JghFjtsOAEo0?p=preview

你應該使用$timeout,不是setTimeout的。

不想詳談,但它似乎是聰明庫thow ...

+0

感謝他們回覆彼得。我使用的是angular-block-ui,它與jquery類似,但它應該是全自動的,所以我不必擔心在每個請求上顯示/隱藏模式。 – rsc

0

你應該使用$timeout,不是setTimeout的。

'use strict'; 
myApp.controller('LoginModalCtrl', function ($scope, blockUI, $timeout) { 

    $scope.login = function() { 
     console.log("on submit"); 

     blockUI.start(); 

     $timeout(function(){ 
      //do what you need here 
      blockUI.stop(); 
      console.log("finished") 
     }, 2000); 
    } 

})