2016-07-05 83 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); 
    } 

})