2016-07-05 7 views
0

Я добавил angular-block-ui module в свой проект Angular, но он не блокировал пользовательский интерфейс автоматически во время моих запросов ajax.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.

Dont хочу вдаваться в подробности, но это не кажется, что смарт-библиотека Сбрось ...

+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); 
    } 

})